複数のコンストラクターを持つクラスがある場合、どのコンストラクターを使用するかを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>();
また、クラスにコンストラクターが1つしかない場合は、おそらく簡単になるという事実を無視してください...