У меня есть интерфейс IRepository со многими T и несколькими реализациями (БД по требованию, веб-сервис и т. Д.).Я использую AutoFac для регистрации IRepository для многих T, в зависимости от типа репозитория, который я хочу для каждого T.
У меня также есть реализация на основе .NET-кэширования, которая ищет T в кеше и затем вызывает'IRepository.Find для устранения ошибки кэша.Он построен примерно так:
new CachingRepository(realRepository, cacheImplementation);
Я хотел бы использовать флаг конфигурации, чтобы решить, обслуживает ли AutoFac основанный на кэшировании IRepository или «реальные вещи».Похоже, что realRepository возникает из-за того, что AutoFac запрашивает разрешение IRepository , но что получают клиенты, когда просят разрешить тот же интерфейс?Я хочу, чтобы они получили CachingRepository, если установлен флаг.
Я не могу понять, как реализовать это разрешение на основе флагов.Есть идеи?