Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# AppDomain之间是否共享静态类?_C#_Reflection_Appdomain - Fatal编程技术网

C# AppDomain之间是否共享静态类?

C# AppDomain之间是否共享静态类?,c#,reflection,appdomain,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。如果Modul

我有四个程序集,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是否会收到修改?

否,静态或非静态变量将不会在
AppDomain
s之间共享。实例位于它们自己的AppDomain中,除非您为其做一些工作,例如使其
MarshalByRefObject
并复制周围的静态“实例”.

…或者当包含静态字段/属性的类型标记为
[Serializable]