インターフェイスとそれを実装する2つのクラスがあります。それらの1つには、コンストラクターにパラメーターがあります。app.configに両方をサービスとして登録しました。残念ながら、コードで両方を解決することはできません。コンストラクターを持つクラスは返されません。
例えば:
interface ITest
{
}
class Test : ITest
{
private string a;
public Test(string a)
{
this.a = a;
}
}
class Test2 : ITest
{
}
これが私の設定です:
<castle>
<components>
<component id="Test" type="XYZ.Test, XYZ" service="XYZ.ITest, XYZ"/>
<component id="Test2" type="XYZ.Test2, XYZ" service="XYZ.ITest, XYZ"/>
</components>
</castle>
そして、これが私のサービスをコードで取得しようとする方法です:
ITest[] resolveAll = container.ResolveAll<ITest>(new {a ="aText" });
配列「resolveAll」には「Test2」のみが含まれ、「Test」のトレースは含まれていません。これらの2つのクラスを取得するにはどうすればよいですか?
ID "Test"で解決すると、次のことに注意してください。
object resolve = container.Resolve("Test", new { sessionId = "sessionId" });
'Test'クラスを取得します。
私は何を間違っているのですか?