gpt4 book ai didi

.net - MarshalByRefObject 很特别吗?

转载 作者:行者123 更新时间:2023-12-02 15:09:29 25 4
gpt4 key购买 nike

.NET 有一种称为远程处理的功能,您可以在不同的应用程序域甚至物理机之间传递对象。我不完全理解魔法是如何完成的,因此提出了这个问题。

在远程处理中,有两种传递对象的基本方法 - 要么可以序列化它们(转换为一堆字节并在另一端重建),要么可以从 MarshalByRefObject 继承。 ,在这种情况下,.NET 会创建一些透明代理,并且所有方法调用都会转发回原始实例。

这非常酷,并且像魔术一样起作用。而且我不喜欢编程中的魔法。使用 Reflector 查看 MarshalByRefObject 时,我没有看到任何可以将其与任何其他典型对象区分开的东西。甚至没有一个奇怪的内部属性或任何东西。那么整个透明代理是如何组织的呢?我自己能做一个这样的机制吗?我可以制作一个替代的 MyMarshalByRefObject 吗?它不会从 MarshalByRefObject 继承,但仍具有相同的行为?或者 MarshalByRefObject 是否受到 .NET 引擎本身的特殊处理,并且整个远程处理壮举是普通人无法复制的?

最佳答案

神奇之处似乎在于一个特殊的 TransparentProxy 类 - .NET 运行时以特殊方式处理它。

我认为 MarshalByRefObject 可能包含一些额外的内部信息,这对这种机制很有帮助,但我没有对此进行太多研究。

关于.net - MarshalByRefObject 很特别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2720703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com