0

2つの異なるDLLがあり、それぞれに静的と同じオブジェクトをインスタンス化する場合(たとえば、private static MyObject objRandom = new MyObject();)、その2つのインスタンスが作成されることを理解しています。

依存性注入を介して静的オブジェクトをDllAからDllBに渡す場合、スタックに作成されるインスタンスは1つだけになりますか?

4

2 に答える 2

1

コードによって異なりますが、ほとんどの場合、1つのインスタンスになります。スタティックは、DLLごとではなく、AppDomainごとにインスタンス化されます。DLLはすべて同じアプリドメインに読み込まれます。

于 2012-10-31T02:18:56.360 に答える
0

オブジェクトは静的ではなく、参照は静的です。同じインスタンスへの参照はいくつでも持つことができます。この例で静的なのはクラス内の参照であるため、を含む同じクラスの異なるインスタンスはstatic MyObject objRandom...同じインスタンスを持ちます。

同じオブジェクトが静的または非静的な方法で他のクラスによって参照されている場合は、問題ありません。そのクラスが別のDLLにある場合でも。

それがどのように機能するかを明らかにすることを願っています。

于 2012-10-31T02:22:06.117 に答える