IWindsorContainer をプロパティとして挿入する際に問題が発生しています。
MVC3を使用しています。独自の IView と ViewEngine を作成しました。ビュー内から、Windsor に登録されている型に基づいてビューを動的に構築します。
1 つの条件 (「リスト」ビュー) について、Windsor に登録されているすべての IMyTypes のリストを表示したいと考えています。私の global.asax では、Windsor ビューを次のように登録します。
container.Register(Component.For<IWindsorContainer>().Instance(container));
次に、IView の実装で、次のようなプロパティを宣言します。
public IWindsorContainer Container { get; set; }
実際の IView は別のコンポーネントにあります。Render メソッドに到達したら、次のようにします。
IRuleDataDefinition[] ruleDatas = Container.ResolveAll<IRuleDataDefinition>();
ただし、「コンテナー」は常に null です。IView を作成している方法が原因ですか (私は new を使用しているだけで、Windsor に登録されていませんか?) IWindsorContainer 自体に問題がありますか? それとも、すべてが間違っているだけですか?
また、「Container.Resolve を使用している場合は、おそらく間違っている」と言っている他の人も読みました。したがって、私がこれを間違っている場合は、お知らせください。
編集
おそらく、質問を表現するより良い方法は次のとおりです。IMyType のすべての登録済みバージョンをループする必要があります。
2番目の編集
依存関係チェーン全体に Windsor を使用することで動作するようになりました。もちろん、これはあなたがすべきことです。