AppDomain之间共享静态类吗?

Ste*_*Fan 2 c# reflection appdomain

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

在DLL ModuleStatic中:

public class ModuleStatic {
    public static string Foo { get; set; } = "Foo";    
}
Run Code Online (Sandbox Code Playgroud)

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

Pat*_*man 5

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