У меня есть IRepository , а реализация SqlRepository . 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 я хочу ввести другой DataContext. Как мне сказать SM, что когда я запрашиваю IReposiotry , я хочу другой DataContext, не FirstDataContext, а SecondDataContext (этот DC идет в другую базу данных).
Например, когда я запрашиваю IRepository , я хочу, чтобы FirstDataContext был внедрен, но когда я спрашиваю explicity для IRepository , я хочу, чтобы SecondDataContext был внедрен.
Также, что SecondDC должен быть гибридным кэшированным SM!