2017-02-20 11 views
2

私は、ModuleStatic、Loader、ModuleA、ModuleBの4つのアセンブリを持っています。これらはすべて、実行可能ファイルであるLoaderのほかにDLLです。 DLL ModuleStaticで静的クラスはAppDomain間で共有されていますか?

:ローダ、ModuleAとModuleBにおいて

public class ModuleStatic { 
    public static string Foo { get; set; } = "Foo";  
} 

それぞれDOMAとDOMBに、Assembly.Loadとアプリケーションドメインを介してロードされます。 ModuleAがModuleStatic.Foo変数を変更した場合、domBにあるModuleBは変更を受け取りますか?

答えて

4

いいえ、変数は静的であるかどうかにかかわらず、AppDomainで共有されません。インスタンスは自身のAppDomain内に存在し、例えばMarshalByRefObjectにして静的な 'インスタンス'をコピーするなど、いくつかの作業を行わない限り交差しません。

+0

...または静的フィールド/プロパティを含む型が '[Serializable]'としてマークされている場合 – tommed