Я пытаюсь зарегистрировать класс для определенного экземпляра.
У меня есть следующий класс:
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.