3

キャッスルウィンザーにコンポーネントを登録することはスレッドセーフですか?

つまり、複数のスレッドが同じコンテナインスタンスにコンポーネントを同時に登録できますか?

(記録のために、はい、そうすることはおそらく非常識であることを私は知っています。)

4

1 に答える 1

7

Windsor のような複雑なソフトウェアがスレッドセーフかどうかを判断するのは非常に困難です。Windsor には、いくつかのサブシステムと内部サービスがあります。そして、各コンポーネントの登録は多くのことを行うことができます (プロキシの設定、さまざまなライフスタイル、カスタムの依存関係など)。私の知る限り、スレッドセーフ固有のテストはありません。

ただし、デフォルトのサブシステムを使用していて、スレッドがカスタム コントリビューターやサブリゾルバーなどを追加しない (つまり、単なるコンポーネント登録) と仮定すると、コンポーネント登録に関与するクラスは次のいずれかのように見えるため、スレッドセーフである必要があります。ステートレスまたは適切にロックされています。DefaultKernelは、ほとんどの操作をさまざまなサブシステム/内部サービスに委任します。特に、DefaultNamingSubSystem (サービス マップ ストレージ サブシステム) は適切にロックされます。

Castle -usersまたはCastle -dev Google グループで質問することをお勧めします。実際の Castle グルはそこにいます。

于 2009-05-01T03:35:41.950 に答える