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を挿入したいと思います。IReposiotry <SpecificObject>を要求するときに、FirstDataContextではなくSecondDataContext(DCが別のデータベースに移動する)ではなく、別のDataContextが必要であるとSMをどのように言いますか。
たとえば、IRepository <T>を要求する場合は、FirstDataContextを注入しますが、IRepository <Product>を明示的に要求する場合は、SecondDataContextを注入します。
また、そのSecondDCはSMによってハイブリッドキャッシュされる必要があります!