Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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# 关于.NET远程处理和序列化的问题_C#_.net_Remoting - Fatal编程技术网

C# 关于.NET远程处理和序列化的问题

C# 关于.NET远程处理和序列化的问题,c#,.net,remoting,C#,.net,Remoting,我有一个接口(命名为outerprint)和一个实现它的类(OuterClass)。接口outerprint由其他接口(InnerInt1、InnerInt2等)组成,还有一些类(InnerClass1、InnerClass2等)实现这些内部接口。OuterClass由.NET远程处理(RemotingServices.Marshal(_OuterClass,“MyOutInt”);)在应用程序的服务器端公开 我的问题是,内部类是否会在远程处理过程中序列化,应用程序的客户端是否应该知道这些类(例

我有一个接口(命名为outerprint)和一个实现它的类(OuterClass)。接口outerprint由其他接口(InnerInt1、InnerInt2等)组成,还有一些类(InnerClass1、InnerClass2等)实现这些内部接口。OuterClass由.NET远程处理(RemotingServices.Marshal(_OuterClass,“MyOutInt”);)在应用程序的服务器端公开 我的问题是,内部类是否会在远程处理过程中序列化,应用程序的客户端是否应该知道这些类(例如,对这些类进行汇编引用)?我希望我能明确地描述我的问题,如果不是的话——在评论中问我。

远程处理(正如Oded所指出的,它非常不受欢迎)创建了一个指向对象的远程钩子;不是API(接口)。因此,两端确实需要有相同的dll(包含要远程的具体类型)。它是序列化还是代理取决于它是否继承自
MarshalByRefObject
。但通常情况下:如果它在对象图的一端,那么它需要在另一端创建


如果可能的话,我更喜欢几乎任何其他的实现而不是远程处理。

远程处理已经过时-改用WCF。我不能使用WCF,因为工作环境的原因。@Praetor12(这不是一个愚蠢的问题;不要放下你自己)如果我发送一个对象的实例,但该对象可以看到其他的东西,它可以看到其他的东西。。。等然后,整个可到达对象集就是图。当远程处理需要序列化时,它会使用
二进制格式化程序
,这将发送尽可能多的内容。感谢您快速简单的回答。如果远程处理以这种方式进行,那将是丑陋和无效的。我认为它只发送调用方法的参数或字段和属性的值,并且只需要序列化远程处理对象:(@Praetor12这完全取决于什么是代理还是序列化;例如,一个方法的结果可以是序列化的对象图,也可以是代理;同样,一个方法的参数可以是序列化的图,也可以是代理。如果没有一些非常具体的例子,就不可能说得更多。