我有一个具有可选依赖项的存储库类:
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>();
即没有用一个参数为MyRepository 指出特定的InjectionConstructor,而是使用带有null 作为cacheProvider参数的默认构造函数。
有没有办法做到这一点?