我一直在探索重新发明 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/