c# - MarshalByValueComponent 是否仍在使用或有用?

标签 c# .net .net-4.0 .net-remoting system.componentmodel

我一直在探索重新发明 DataTable,我想知道 MarshalByValueComponent 的用途是什么。我相信它用于 .NET Remoting(可能是 WinForms 和 WebForms),但它已被 替换 并被 WCF 取代。我在 GitHub 或 Google 上找不到它的任何显着用法。 MarshalByValueComponent 还在使用吗?

最佳答案

这很难回答。想要远程组件的整个概念是一个神秘的概念。这些设计决策是在 13 多年前做出的,显然他们对远程处理的实用性有着截然不同的想法。在 .NET 3.0 中进行了大量重新设计的效果并不理想

只是胡思乱想,不知道背后的想法。 MarshalByValueComponent 作为 Component 的对立面存在。它继承自 MarshalByRefObject。到目前为止,大多数组件和控件都是不可序列化的,它们有太多与之关联的运行时状态,永远无法在另一个运行时环境中正确反序列化。以一个 OpenFileDialog 为例,它在另一台机器上的逐字复制能够正确运行的可能性微乎其微。再次不得不暂停你为什么要这样做的奇迹。 任何控件都一样,它有几十个属性,其值取决于操作系统状态。

但 MBRO 并不是那么理想,许多往返行程受到网络延迟的严重影响。有一些组件没有运行时状态,但在远程场景中仍然有意义。它们是一个组件本身就是一个怪癖,我已经很长时间没有将 DataSet 放在 Form 上了。但他们因此继承了 MBVC。忽略这一点,这是不切实际的。

关于c# - MarshalByValueComponent 是否仍在使用或有用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16170280/

相关文章:

c# - 获取命令模式中执行方法的结果

c# - 用于 C#/.NET 的可靠 FFmpeg 包装器

c# - 将接口(interface)(和对象实例)返回给远程调用者的最佳方式是什么,在托管应用程序中运行了对象方法调用?

.net - 如何模拟强制关闭的 TCP 连接?

c# - 泛型方法可以使用逆变/协变类型吗?

c# - 逐字字符串问题

c# - Selenium WebDriver : how to count number of DIV elements in a list

c# - 线程 : Application Freezes after using Thread. 加入()

c# - .NET 4.0 中的 GetCustomAttribute 等效项

c# - 如何使用 EF Core Code-First 创建具有子类别的类别表?