Зарегистрировать null как экземпляр в контейнере Unity

У меня есть класс репозитория с дополнительной зависимостью:

class MyRepository : BaseRepository, IMyRepository
{
    public MyRepository(IDataContext dataContext, ICacheProvider cacheProvider = null)
        : base(dataContext, cacheProvider)
    {}

    // …
}

Существование параметра cacheProvider действует как стратегия для репозитория. Я хочу настроить контейнер Unity следующим образом:

Container.RegisterType<IDataContext, MyDataContext>(new PerResolveLifetimeManager(), new InjectionConstructor())
        .RegisterInstance<ICacheProvider>(null) // ???
        .RegisterType<IMyRepository, MyRepository>();

т.е. не указывая конкретный InjectionConstructor с одним параметром для MyRepository, но используйте конструктор по умолчанию с нулевым значением в качестве параметра cacheProvider .

Есть какой-либо способ сделать это?

17
задан v0id 9 July 2012 в 09:50
поделиться