Example #1
0
        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();
            }
        }
Example #2
0
        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();
 }
Example #4
0
 protected override void RegisterBuilder(ContainerBuilderWrapper builder)
 {
     base.RegisterBuilder(builder);
     builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>));
 }