コード例 #1
0
        private static IServiceCollection AddModules(this IServiceCollection services, IConfiguration config, IHostAssemblyProvider hostAssemblyProvider)
        {
            var modules = new ModuleLoader(hostAssemblyProvider).GetModules();

            modules.ToList().ForEach(module =>
            {
                services.AddMediatR(module.Assembly);
                services.AddValidatorsFromAssembly(module.Assembly);
                services.AddAutoMapper(module.Assembly);
                services = module.RegisterServices(services, config);
            });

            return(services);
        }
コード例 #2
0
ファイル: ModuleLoader.cs プロジェクト: MadSciencist/QLector
 public ModuleLoader(IHostAssemblyProvider hostAssemblyProvider)
 {
     _hostAssemblyProvider = hostAssemblyProvider;
 }
コード例 #3
0
        public static IServiceCollection AddApplicationLayer(this IServiceCollection services, IConfiguration config, IHostAssemblyProvider hostAssemblyProvider = null)
        {
            if (hostAssemblyProvider is null)
            {
                hostAssemblyProvider = new HostAssemblyProvider();
            }

            return(services
                   .AddModules(config, hostAssemblyProvider)
                   .AddMediatR(CurrentAssembly)
                   .AddAutoMapper(CurrentAssembly)
                   .RegisterBehavior(typeof(LoggingBehavior <,>))
                   .RegisterBehavior(typeof(AuthorizationBehavior <,>))
                   .RegisterBehavior(typeof(ValidationBehavior <,>))
                   .AddValidatorsFromAssembly(CurrentAssembly)
                   .AddTransient <IDbConnectionFactory, SqlServerConnectionFactory>());
        }