Зарегистрировать класс для конкретного экземпляра - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь зарегистрировать класс для определенного экземпляра.

У меня есть следующий класс:

public class Repository : IRepository
{
 public Repository(ICache cache, ILogger logger) 
 {
   _cache = cache;
   _logger = logger;
 }
}

Существует два экземпляра ICache: MemoryCache и DbCache,Я хочу, чтобы он всегда регистрировал DbCache в Repository.

Вот код, в котором я пытаюсь зарегистрировать экземпляр в классе.

var builder - new ContainerBuilder();

builder.Register((c, p) => 
 new Repository(p.Named<ICache>("cache"), p.Named<ILogger>("logger")));

builder.RegisterAssemblyModulesInDirectoryOf(Assembly.GetExecutingAssembly())
 .WhereFileMatches("Something.*.dll");

var container = builder.Build();

container.Resolve<IRepository>(new NamedParameter("cache", new DBCache()),
                new NamedParameter("logger", new Logger()));

В настоящее время DbCache загружается толькокогда первый экземпляр репозитория сделан.Однако после этого новые экземпляры репозитория используют MemoryCache.Я хочу, чтобы при создании экземпляра репозитория использовался только DbCache.

...