Como o Unity.Resolve sabe qual construtor usar?
Dada uma classe com vários construtores - como posso dizer ao Resolve qual construtor usar?
Considere a seguinte classe de exemplo:
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; }
}
Se eu quiser criar um objeto do tipo Foo usando o Resolve, como o Resolve saberá qual construtor usar? E como posso dizer para usar o caminho certo? Digamos que eu tenha um contêiner com um IBar registrado - ele entenderá que deve favorecer o construtor que está usando o IBar? E se eu especificar uma string também - ela usará o(string, IBar)
construtor?
Foo foo = unityContainer.Resolve<Foo>();
E, por favor, ignore o fato de que provavelmente seria mais fácil se a classe tivesse apenas um construtor ...