我有 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。
此外,该 SecondDC 应该由 SM 混合缓存!