¿Cómo sabe Unity.Resolve qué constructor usar?

Dada una clase con varios constructores, ¿cómo puedo decir a Resolve qué constructor usar?

Considere 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 Resolve, ¿cómo Resolve sabrá qué constructor usar? ¿Y cómo puedo decirle que use el correcto? Digamos que tengo un contenedor con un IBar registrado. ¿Entenderá que debería favorecer que el constructor tome IBar? Y si también especifico una cadena, ¿usará el(string, IBar) ¿constructor?

Foo foo = unityContainer.Resolve<Foo>(); 

Y por favor ignore el hecho de que probablemente sería más fácil si la clase tuviera un solo constructor ...

Respuestas a la pregunta(2)

Su respuesta a la pregunta