AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
方法1:所有实现 IApplicationService 接口的都会被自动注册 --- > 注意 接口名和实现类名要一致 主要用于modules的业务逻辑控制层 ``` public interface IPersonAppService : IApplicationService {         //... } public class PersonAppService : IPersonAppService {         //... } ``` 方法二:主要用于模块 --- 注册到程序集 ``` IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly()); ``` 方法三: 编写自己的约定注册类 --- 实现IConventionalRegisterer接口和调用IocManager , AddConventionalRegisterer方法 abp 2.0.2版本实现方式 参考  [https://www.cnblogs.com/dujq/p/10496911.html](https://www.cnblogs.com/dujq/p/10496911.html) ``` public class Task1AppService: IConventionalDependencyRegistrar { public void RegisterAssembly(IConventionalRegistrationContext context) { context.IocManager.IocContainer.Register(                 Classes.FromAssembly(context.Assembly)                 .BasedOn()                 .If(type => !type.GetTypeInfo().IsGenericTypeDefinition)                 .WithService.Self()                 .WithService.DefaultInterfaces()                 .LifestyleTransient()); } } ``` ``` public class xxxxModule : AbpModule { public override void PreInitialize() { //这个地方必须加 IocManager.AddConventionalRegistrar(new Task1AppService()); } } ``` 方法4:abp 实现方式 --- ``` public interface IPersonManager {         //... } public class MyPersonManager : IPersonManager, ISingletonDependency {         //... } ``` 方法5:原生方法 --- 通过使用IIocManager.IocContainer属性得到WindsorContainer。 ``` public class MyInstaller : IWindsorInstaller {         public void Install(IWindsorContainer container, IConfigurationStore store)         {             container.Register(Classes.FromThisAssembly().BasedOn().LifestylePerThread().WithServiceSelf());         } } ```