我一直在探索重新发明DataTable
,我想知道MarshalByValueComponent
的用途是什么。我相信它是用于。net Remoting(可能是WinForms和WebForms),但那是取代被WCF取代。我在GitHub或Google上找不到任何值得注意的用法。MarshalByValueComponent
还在用吗?
这个问题很难回答。想要远程化一个组件的整个概念是一个令人困惑的概念。这些设计决策是在13年前做出的,显然他们对远程控制的实用性有着非常不同的想法。结果不太好,在。net 3.0中进行了大量重新设计
只是在不知道背后的想法的情况下摸索一下。MarshalByValueComponent作为Component的对立面而存在。它继承自MarshalByRefObject。到目前为止,大多数组件和控件都是不可序列化的,它们有太多与之相关的运行时状态,这些状态在另一个运行时环境中永远无法正确地反序列化。以OpenFileDialog为例,它在另一台机器上的逐字副本能够正常运行的几率是零。再一次,我不得不暂停你为什么要这么做的疑惑。对于任何控件都是一样的,它有许多属性,它们的值取决于操作系统的状态。
但是MBRO不是那么理想,许多往返会受到网络延迟的严重影响。有一些组件没有运行时状态,但在远程场景中仍然有一些意义。他们是一个组件本身是一个怪癖,这是很长一段时间以来,我把一个数据集在窗体上。但结果是他们继承了MBVC。