Tengo IRepository < T>, e implementación SqlRepository < T>. SqlRepository tiene el parámetro DataContext en constructor.Inyectar un objeto diferente al constructor con StructureMap para ciertos casos
configuración SM se ve así:
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;
});
Pero para la construcción de IRepository < SpecificObject> Quiero inyectar diferentes DataContext. ¿Cómo digo SM que cuando solicito IReposiotry < SpecificObject> Quiero diferente DataContext, no FirstDataContext sino SecondDataContext (ese DC va a diferentes bases de datos).
Por ejemplo, cuando pido IRepository < T> Quiero FirstDataContext a inyectar, pero cuando pido explícitamente para IRepository < producto> Quiero SecondDataContext a inyectar.
¡Además, ese SecondDC debe ser Hybrid cache by SM!
funcionó! Genial, muchas gracias! –