给定一个具有多个构造函数的类 - 我如何告诉 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; }
}
如果我想使用 Resolve 创建一个 Foo 类型的对象,Resolve 如何知道要使用哪个构造函数?我怎么能告诉它使用正确的呢?假设我有一个注册了 IBar 的容器 - 它会理解它应该支持使用 IBar 的构造函数吗?如果我也指定一个字符串 - 它会使用(string, IBar)
构造函数吗?
Foo foo = unityContainer.Resolve<Foo>();
请忽略这样一个事实,即如果该类只有一个构造函数可能会更容易......