Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.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# 同一域中相同静态成员的不同值_C#_Static - Fatal编程技术网

C# 同一域中相同静态成员的不同值

C# 同一域中相同静态成员的不同值,c#,static,C#,Static,我正在主持一个带有VC++项目的C#程序。此C#程序正在使用Remoting命名空间和以下方法初始化Remoting: public static void Create(...) { var type = typeof(ClassA); RemotingConfiguration.RegisterWellKnownServiceType(type, ServiceNAME, WellKnownObjectMode.Singleton); } ClassA当在指定端口上发送的

我正在主持一个带有VC++项目的C#程序。此C#程序正在使用
Remoting
命名空间和以下方法初始化Remoting:

public static void Create(...)
{
    var type = typeof(ClassA);

    RemotingConfiguration.RegisterWellKnownServiceType(type, ServiceNAME, WellKnownObjectMode.Singleton);
}
ClassA
当在指定端口上发送的数据成为
ClassA
的实例时,使用另一个类的静态成员;发生这种情况时,会重新初始化另一个类(ClassB)中的静态成员。换句话说,在同一时间,同一个域和同一个进程中,静态成员有两个不同的值(我已经检查过了)

注意:ClassB是我的项目的一个类,它包含一些静态成员,当我使用以下命令时:

System.Reflection.Assembly.GetExecutingAssembly().GetType("ClassB").TypeHandle.Value
它在ClassA内部和外部返回不同的值

注意:此程序无需使用主机即可正常运行。我的托管项目与许多其他项目一起工作,没有什么特别之处


为什么静态成员有两个值?为什么同一类型的TypeHandle值不同?

我不知道为什么会发生这种情况,但以下解决方案解决了我的问题:


在这个项目中,我处理AssemblyResolve事件。当远程处理想要创建ClassA的实例时,AssemblyResolve将使用程序集名称本身触发;在这种情况下,您应该存储指定assemlby的程序集对象。当用程序集名称触发AssemblyResolve方法时,返回存储的程序集对象。

能否显示一个简短但完整的程序来演示问题?@JonSkeet:我尝试添加一些细节。如果有什么不清楚,我会补充更多细节。问题是什么?@Maarten:我明确地补充了我的问题。Thanks@JonSkeet:有什么有用的东西可以补充我的问题吗?@JonSkeet:谢谢你的关注。这难以置信地解决了我的问题