AppDomain之间是否共享静态类?

时间:2017-02-20 09:16:39

标签: c# reflection appdomain

我有四个程序集,ModuleStatic,Loader和ModuleA以及ModuleB,它们都是除了Loader之外的DLL,它是一个可执行文件。

在DLL ModuleStatic中:

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

在Loader中,ModuleA和ModuleB将通过Assembly.Load和AppDomain分别加载到domA和domB。如果ModuleA修改了ModuleStatic.Foo变量,那么domB中的ModuleB会收到修改吗?

1 个答案:

答案 0 :(得分:5)

不,变量(静态与否)不会在AppDomain之间共享。实例存在于他们自己的AppDomain中,除非您为它做一些工作,否则它们不会交叉,例如通过使其MarshalByRefObject并复制静态“实例”。