Estoy trabajando en el código heredado.StructureMap Especificación de argumentos de constructor explícitos
Tengo diferentes métodos de la misma clase que pasan diferentes argumentos al constructor de una dependencia. Estoy tratando de introducir algunos usos básicos de la IoC. Ahora mismo tengo StructureMap pasar mis argumentos así:
var thing = ObjectFactory.GetInstance<IThingInterface>(new ExplicitArguments(
new Dictionary<string, object> {
{ "constructorArgA", notShown },
{ "constructorArgB", redacted.Property } }));
Donde las propiedades reales pasaron por constructorArgA y B cambian dependiendo de dónde estoy.
En lugar de "constructorArgA" ¿Hay una manera de configurar esto a través de tipos reales, como se puede hacer cuando se configura el objectFactory, como:
x.For<IHidden>().Use<RealType>()
.Ctor<IConfig>().Is(new Func<IContext, IConfig>(
(context) => someMethodToGetIConfig()));
Si estuviera escribiendo esto desde cero probablemente me estructura las dependencias son un poco diferentes para evitar esto, pero esa no es una opción para mí en este momento.
¿O debería pasar a la inyección de propiedad en lugar de la inyección del constructor? –