2

このプロジェクトは、Castle Windsor を使用して IOC/DI を実装しています。プロジェクトには多くのモジュールがあります。7つのステップを含む自動プロセスのモジュールにProcessEngine送信するというモジュールがあります。Invoices

これまで、モジュールはキューのように 1 つずつProcessEngine送信するために使用されていましたが、私のモジュールは完全に機能していました。Invoicesしかし今ProcessEngineでは、それぞれの請求書に独自のスレッドがあるため、異なるスレッドにまたがって準備ができている多くの請求書を送信するため、問題が発生します。

問題は、Castle Windsor を使用してインスタンスが作成され、毎回同じオブジェクトが返されることです。つまり、すべてのスレッドが同じインスタンスを持ち、混乱を引き起こします。次に、 newキーワードを使用していくつかのプライベート プロパティを持つ主要なクラスのインスタンスを作成し、正常に機能しました。

モジュールの一部のクラスについて、Castle Windsor コンテナーが毎回新しいインスタンスを返すように制限する方法はありますか? new キーワードを使用せず、Castle Windsor を使用してオブジェクトをインスタンス化する必要があるというのが、プロジェクトのアーキテクチャ ガイドラインです。これに対する解決策はありますか?

どんな助けでも非常に高く評価されます。Castle Windsor についての知識はあまりありませんが、Castle Windsor を使用して毎回同じオブジェクトを返すシングルトン パターンの一種であることがわかりました。

4

1 に答える 1

3

あなたはライフスタイルをチェックする必要があります。

デフォルトの動作はシングルトンです。これは、解決を要求したときに実際に同じインスタンスを返すことを意味します。

PerThreadまたはTransientライフスタイルを使用できます。

于 2012-10-14T16:00:31.960 に答える