Учитывая класс с несколькими конструкторами - как я могу сказать, разрешить какой конструктор использовать?
Рассмотрим следующий пример класса:
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, как будет решить, какой конструктор использовать? И как я могу сказать, чтобы использовать правильный? Скажем, у меня есть контейнер с зарегистрированным IBar - поймет ли он, что он должен одобрить конструктор, принимающий IBar? И если я также укажу строку - будет ли она использовать конструктор (string, IBar)
?
Foo foo = unityContainer.Resolve<Foo>();
И, пожалуйста, проигнорируйте тот факт, что, вероятно, было бы проще, если бы у класса был только один конструктор...