Windsorを使用して新しいプロジェクトに着手しようとしていますが、クラスAがクラスBをインスタンス化する必要があるシナリオに遭遇することを考えていましたが、WindsorがクラスBのインスタンスをに注入することは不可能または不可能です。それ。私はシナリオを考えるのに苦労していますが、ここに行きます:
WCFサービスに渡されるビジネスエンティティ「顧客」があるとします。このクラスにはEnt.Lib自己検証メソッドがあり、このメソッドはヘルパークラス「CustomerValidator」を使用します。サービスによって受信されたCustomerオブジェクトはWCFによって逆シリアル化されているため、Windsorはそのインスタンス化に関与しないため、依存関係を注入することはできません。また、CustomerValidatorを自己検証メソッドに渡すこともできません。これは、Ent.Libの特定の署名に従う必要があるためです。では、このクラス/メソッド内でCustomerValidatorをインスタンス化するにはどうすればよいですか?単に「 varcv=new CustomerValidator(); 」を実行するのではなく、Windsorを利用したいのです。
これは、Customerクラスに検証メソッドを含めるのではなく、Customerオブジェクトを検証メソッドに渡すなど、さまざまな方法で解決できるため、優れた例ではありませんが、議論のための可能なシナリオを提供します。
WindsorContainerをパブリックシングルトンとして公開し、それを必要とする任意のコードからアクセスできますが、それは眉をひそめているようです。他に何か提案はありますか?