Ejemplo n.º 1
0
        public void Register(IContainerBuilder containerBuilder)
        {
            containerBuilder.RegisterSingleton <PersistenceConfig>();

            var cfg = PersistenceConfig.Instance();

            switch (cfg.Provider)
            {
            case RedisDbJsonConfig.Provider:
            {
                containerBuilder.RegisterSingleton <RedisDbJsonConfig>();
                containerBuilder.RegisterSingleton <IRepository, RedisDbJsonRepository>();
                containerBuilder.RegisterSingleton <IRedisDbJsonContext, RedisDbJsonContext>();
                break;
            }

            case RedisDbBinaryConfig.Provider:
            {
                containerBuilder.RegisterSingleton <RedisDbBinaryConfig>();
                containerBuilder.RegisterSingleton <IRepository, RedisDbBinaryRepository>();
                containerBuilder.RegisterSingleton <IRedisDbContext, RedisDbContext>();
                break;
            }

            case RocksDbConfig.Provider:
            {
                containerBuilder.RegisterSingleton <RocksDbConfig>();
                containerBuilder.RegisterSingleton <IRepository, RocksDbRepository>();
                containerBuilder.RegisterSingleton <IRocksDbContext, RocksDbContext>();
                break;
            }

            default:
                throw new UnknownPersistentProvider($"The persistence configuration contains unknown provider \"{cfg.Provider}\"");
            }
        }