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


    当我们新增一个模块时:

     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 也就是要继续这个接口才可以自动注册 。。。。晕死,,上面说到的四人。任何一个都可以,相应的接口看文档。
  • 相关阅读:
    ubuntu 安装redis以及phpredis
    【译】关于Rust模块的清晰解释
    【译】Ringbahn的两个内存Bug
    从背单词到写代码
    【译】Rust中的array、vector和slice
    【译】理解Rust中的闭包
    【译】Rust,无畏并发
    Linux环境下发布.net core
    负载均衡之nginx
    mysql数据库变更监控(canal)
  • 原文地址:https://www.cnblogs.com/dj258/p/6511073.html
Copyright © 2020-2023  润新知