Как Unity.Resolve узнает, какой конструктор использовать?

Учитывая класс с несколькими конструкторами - как я могу сказать Resolve, какой конструктор использовать?

Рассмотрим следующий пример класса:

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; }
}

Если я хочу создать объект типа Foo с помощью Resolve, как Resolve узнает, какой конструктор использовать? И как я могу сказать, чтобы использовать правильный? Допустим, у меня есть контейнер с зарегистрированным IBar - поймет ли он, что он должен отдавать предпочтение конструктору, принимающему IBar? И если я тоже укажу строку - она ​​будет использовать(string, IBar) конструктор?

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

И, пожалуйста, игнорируйте тот факт, что было бы легче, если бы у класса был только один конструктор ...

Ответы на вопрос(2)

Ваш ответ на вопрос