Как 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>();
И, пожалуйста, игнорируйте тот факт, что было бы легче, если бы у класса был только один конструктор ...