キャッスルウィンザーにコンポーネントを登録することはスレッドセーフですか?
つまり、複数のスレッドが同じコンテナインスタンスにコンポーネントを同時に登録できますか?
(記録のために、はい、そうすることはおそらく非常識であることを私は知っています。)
キャッスルウィンザーにコンポーネントを登録することはスレッドセーフですか?
つまり、複数のスレッドが同じコンテナインスタンスにコンポーネントを同時に登録できますか?
(記録のために、はい、そうすることはおそらく非常識であることを私は知っています。)
Windsor のような複雑なソフトウェアがスレッドセーフかどうかを判断するのは非常に困難です。Windsor には、いくつかのサブシステムと内部サービスがあります。そして、各コンポーネントの登録は多くのことを行うことができます (プロキシの設定、さまざまなライフスタイル、カスタムの依存関係など)。私の知る限り、スレッドセーフ固有のテストはありません。
ただし、デフォルトのサブシステムを使用していて、スレッドがカスタム コントリビューターやサブリゾルバーなどを追加しない (つまり、単なるコンポーネント登録) と仮定すると、コンポーネント登録に関与するクラスは次のいずれかのように見えるため、スレッドセーフである必要があります。ステートレスまたは適切にロックされています。DefaultKernelは、ほとんどの操作をさまざまなサブシステム/内部サービスに委任します。特に、DefaultNamingSubSystem (サービス マップ ストレージ サブシステム) は適切にロックされます。
Castle -usersまたはCastle -dev Google グループで質問することをお勧めします。実際の Castle グルはそこにいます。