クラスに同じインターフェイス タイプの 2 つのプロパティがあり、それぞれに 2 つの異なる具体的なタイプを注入したい場合、プロパティまたはコンストラクター注入のいずれかを使用して autofac でそれを行うにはどうすればよいですか。
例えば。
class A : IA
{
public IB PropertyB { get; set; }
public IB PropertyC { get; set; }
public A(IB b, IB c)
{
PropertyB = b;
PropertyC = c;
}
public void PrintB()
{
PropertyB.Print();
}
public void PrintC()
{
PropertyC.Print();
}
}
私はこれを試しましたが、もちろん、両方のプロパティに C を挿入するだけです
var builder = new ContainerBuilder();
builder.RegisterType<B>().As<IB>();
builder.RegisterType<C>().As<IB>();
builder.RegisterType<A>().As<IA>();
var container = builder.Build();
var a = container.Resolve<IA>();
または、これは同じ結果になります:
builder.RegisterType<B>().As<IB>();
builder.RegisterType<C>().As<IB>();
builder.RegisterType<A>().As<IA>().PropertiesAutowired();
var container = builder.Build();
var a = container.Resolve<IA>();
B が PropertyB に、 C が PropertyC にあることを autofac に伝える方法はありますか?