private static void RegisterLocalInstance(string typeName, ContainerBuilderWrapper builder) { var types = typeof(AppConfig) .Assembly.GetTypes().Where(p => p.GetTypeInfo().GetInterface(typeName) != null); foreach (var t in types) { var attribute = t.GetTypeInfo().GetCustomAttribute <IdentifyCacheAttribute>(); builder.RegisterGeneric(t).Named(attribute.Name.ToString(), typeof(ICacheClient <>)).SingleInstance(); } }
protected override void RegisterBuilder(ContainerBuilderWrapper builder) { base.RegisterBuilder(builder); builder.RegisterGeneric(typeof(DapperRepository <,>)).As(typeof(IDapperRepository <,>)).InstancePerDependency(); builder.RegisterGeneric(typeof(CreationAuditDapperActionFilter <,>)).Named(typeof(CreationAuditDapperActionFilter <,>).Name, typeof(IAuditActionFilter <,>)).InstancePerDependency(); builder.RegisterGeneric(typeof(ModificationAuditDapperActionFilter <,>)).Named(typeof(ModificationAuditDapperActionFilter <,>).Name, typeof(IAuditActionFilter <,>)).InstancePerDependency(); builder.RegisterGeneric(typeof(DeletionAuditDapperActionFilter <,>)).Named(typeof(DeletionAuditDapperActionFilter <,>).Name, typeof(IAuditActionFilter <,>)).InstancePerDependency(); builder.RegisterType <SoftDeleteQueryFilter>().As <ISoftDeleteQueryFilter>().AsSelf().InstancePerDependency(); DapperExtensions.DapperExtensions.DefaultMapper = typeof(ClassMapper <>); var dbSettingSection = AppConfig.GetSection("dbSetting"); if (!dbSettingSection.Exists()) { throw new DataAccessException("未对数据库进行配置"); } var dbSetting = new DbSetting() { DbType = Enum.Parse <DbType>(EnvironmentHelper.GetEnvironmentVariable(AppConfig.GetSection("dbSetting:dbType").Get <string>())), ConnectionString = EnvironmentHelper.GetEnvironmentVariable(AppConfig.GetSection("dbSetting:connectionString").Get <string>()) }; DbSetting.Instance = dbSetting; switch (dbSetting.DbType) { case DbType.MySql: DapperExtensions.DapperExtensions.SqlDialect = new MySqlDialect(); break; case DbType.Oracle: DapperExtensions.DapperExtensions.SqlDialect = new OracleDialect(); break; case DbType.SqlServer: DapperExtensions.DapperExtensions.SqlDialect = new SqlServerDialect(); break; } }
/// <summary> /// Inject dependent third-party components /// </summary> /// <param name="builder"></param> protected override void RegisterBuilder(ContainerBuilderWrapper builder) { base.RegisterBuilder(builder); builder.RegisterGeneric(typeof(MongoRepository <>)).As(typeof(IMongoRepository <>)).SingleInstance(); }
protected override void RegisterBuilder(ContainerBuilderWrapper builder) { base.RegisterBuilder(builder); builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)); }