MarshalByValueComponent

MarshalByValueComponent

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

最佳答案

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

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

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

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

10-11 02:23