MarshalByValueComponent仍然使用或有用吗?

Dus*_*gen 4 .net c# .net-4.0 system.componentmodel .net-remoting

我一直在探索重新发明DataTable,我想知道它的用途是什么MarshalByValueComponent.我相信它是用于.NET远程处理(也许WinForms和的WebForms),但被换下的WCF取代.我在GitHub或Google上找不到任何值得注意的用法.是否MarshalByValueComponent仍在使用?

Han*_*ant 8

这很难回答.想要远程组件的整个概念是一个令人费解的问题.这些设计决策是在13年多前做出的,显然他们对远程操作如何实用有着截然不同的想法.哪个版本没有那么好,在.NET 3.0中进行了大量的重新设计

只是在不了解其背后的想法的情况下对此进行了一些调整.MarshalByValueComponent作为Component的对象存在.其中继承自MarshalByRefObject.到目前为止,大多数组件和控件都不是可序列化的,它们具有与它们相关联的太多运行时状态,这些状态永远不能在另一个运行时环境中正确地反序列化.拿一个OpenFileDialog,它在另一台机器上的逐字副本可以正常运行的几率是zilch.再次不得不暂停为什么你想要这样做的奇迹.对于任何 Control,它都有许多属性,其值取决于操作系统状态.

但MBRO并不是那么令人满意,许多往返旅程都受到网络延迟的严重打击.有一些组件没有运行时状态,在远程处理方案中仍然有点意义.他们是一个组件本身就是一个怪癖,自从我在一个Form上删除一个DataSet已经有很长一段时间了.但他们继承了MBVC.只是忽略这一点,这是不切实际的.