それに応じて、3つのインターフェイスと3つのクラスを定義しました。クラスAはインターフェイスBに依存し、インターフェイスBはインターフェイスCと具象クラスに依存します。私のサンプルコードは次のようになります
public interface IA
{
}
public class A : IA
{
private IB b;
public A(IB b)
{
this.b = b;
}
}
public interface IB
{
}
public class B : IB
{
private IC c;
private string myValue;
public B(IC c, string myValue)
{
this.c = c;
this.myValue = myValue;
}
}
public interface IC
{
}
public class C : IC
{
}
特別なのはクラスBで、コンストラクターには型と文字列(具象値)の両方が必要です。
using (IUnityContainer container = new UnityContainer())
{
container.RegisterType<IB, B>()
.RegisterType<IA, A>()
.RegisterType<IC, C>();
IA a = container.Resolve<IA>();
}
ICと文字列値の両方をクラスBに注入するようにコンテナに指示するコードをどのように定義すればよいですか?