Castle Windsorでパラメーターなしのコンストラクターを呼び出す方法

StackOverflow https://stackoverflow.com/questions/821944

質問

現在、次のようなクラスがあります:

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);
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top