您的位置:首页 > 其它

ABP新增模块可能遇到的问题

2017-03-06 17:35 411 查看
当我们新增一个模块时:

public class SSORedisModule: AbpModule
{
//public override void PreInitialize()
//{
//    base.PreInitialize();

//}
public override void Initialize()
{
IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
}
}


可能在模块那里会添加这样的代码

然后:

在需要用的模块添加依赖: [DependsOn(typeof(SSORedisModule))] 主要是这句。

[DependsOn(typeof(SSORedisModule))]
public class SSOCoreModule : AbpModule
{
public override void Initialize()
{
IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
}
}


然后,以为我们编写的接口和类就可以用了?我们以为就可以运行了。但错了,它还是没有注册成功。

看了文档才发现,原来是这个原因:

ABP依赖注入的基础结构
在编写应用程序时遵循最佳实践和一些约定,ABP几乎让依赖注入框架使用变得无形。

注册:

在ABP中,有很多种不同的方法来注册你的类到依赖注入系统。大部分时间,常规方法就足够了。

常规注册:

按照约定,ABP自动注册所有 Repositories, Domain Services, Application Services, MVC 控制器和Web API控制器

public interface IPersonAppService : IApplicationService
{
//...
}

public class PersonAppService : IPersonAppService
{
//...
}


IApplicationService 也就是要继续这个接口才可以自动注册 。。。。晕死,,上面说到的四人。任何一个都可以,相应的接口看文档。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: