Castle Windsorでパラメーターなしのコンストラクターを呼び出す方法
-
03-07-2019 - |
質問
現在、次のようなクラスがあります:
public class MyClass : IMyClass
{
public MyClass()
{
//...
}
public MyClass(IMyRepository repository)
{
//...
}
}
私の設定ファイルにはIMyClassが登録されていますが、IMyRepositoryは登録されていません。私の意図は、Windsorがパラメーターを取らないコンストラクターを使用することですが、このメッセージが表示されます:
コンポーネント「MyClass」を作成できません 満たすべき依存関係があります。 MyClassは以下を待っています 依存関係:
サービス: -登録されていないNamespace.IMyRepository。
別の投稿が見つかりました。満たすことができるほとんどの引数でコンストラクタを呼び出します。それで、なぜ満たす方法がわからない引数でコンストラクタを呼び出そうとするのですか?
解決
古いバージョンのWindsorを使用している可能性があります。これは私には問題ありません。
[TestFixture]
public class WindsorTests {
public interface ISomeInterface {}
public class AService {
public int Id { get; private set; }
public AService() {
Id = 1;
}
public AService(ISomeInterface s) {
Id = 2;
}
}
[Test]
public void Parameters() {
var container = new WindsorContainer();
container.AddComponent<AService>();
var service = container.Resolve<AService>();
Assert.AreEqual(1, service.Id);
}
}
所属していません StackOverflow