Dada una clase con varios constructores: ¿cómo puedo decirle a Resolve qué constructor usar?¿Cómo sabe Unity.Resolve qué constructor usar?
Considérese la siguiente clase de ejemplo:
public class Foo
{
public Foo() { }
public Foo(IBar bar)
{
Bar = bar;
}
public Foo(string name, IBar bar)
{
Bar = bar;
Name = name;
}
public IBar Bar { get; set; }
public string Name { get; set; }
}
Si quiero crear un objeto de tipo Foo usando Resolver cómo resolverá saber qué constructor de usar? ¿Y cómo puedo decirle que use el correcto? Digamos que tengo un contenedor con un IBar registrado. ¿Entenderá que debería favorecer al constructor que toma IBar? Y si especifico una cadena también, ¿usará el constructor (string, IBar)
?
Foo foo = unityContainer.Resolve<Foo>();
Y por favor, ignora el hecho de que probablemente sería más fácil si la clase acaba de tener un único constructor ...
Genial. Gracias..! – stiank81
¡Exactamente lo que estaba buscando! Acabo de decorar el constructor que quiero usar con [InjectionConstructor] –
Esa es la respuesta que salvaría un fin de semana. Bien definido –