我有一个IRepository<T>,以及SqlRepository<T>的实现。SqlRepository在构造函数中有DataContext参数。
SM配置如下:
x.ForRequestedType(typeof(IRepository<>))
.TheDefaultIsConcreteType(typeof(SqlRepository<>));
x.ForRequestedType<DataContext>().CacheBy(InstanceScope.Hybrid)
.TheDefault.Is.ConstructedBy(()=>{
var dc = new FirstDataContext();
dc.Log = new DebuggerWriter();
return dc;
});
但是对于IRepository<SpecificObject>的构建,我想要注入不同的DataContext。我该如何告诉SM,当我请求IReposiotry<SpecificObject>时,我希望使用不同的DataContext,而不是FirstDataContext,而是SecondDataContext(该DC连接到不同的数据库)。
例如,当我请求IRepository<T>时,我希望注入FirstDataContext,但是当我明确请求IRepository<Product>时,我希望注入SecondDataContext。
此外,第二个DataContext应该由SM进行混合缓存!