- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
.NET 有一种称为远程处理的功能,您可以在不同的应用程序域甚至物理机之间传递对象。我不完全理解魔法是如何完成的,因此提出了这个问题。
在远程处理中,有两种传递对象的基本方法 - 要么可以序列化它们(转换为一堆字节并在另一端重建),要么可以从 MarshalByRefObject 继承。 ,在这种情况下,.NET 会创建一些透明代理,并且所有方法调用都会转发回原始实例。
这非常酷,并且像魔术一样起作用。而且我不喜欢编程中的魔法。使用 Reflector 查看 MarshalByRefObject
时,我没有看到任何可以将其与任何其他典型对象区分开的东西。甚至没有一个奇怪的内部属性或任何东西。那么整个透明代理是如何组织的呢?我自己能做一个这样的机制吗?我可以制作一个替代的 MyMarshalByRefObject
吗?它不会从 MarshalByRefObject
继承,但仍具有相同的行为?或者 MarshalByRefObject
是否受到 .NET 引擎本身的特殊处理,并且整个远程处理壮举是普通人无法复制的?
最佳答案
神奇之处似乎在于一个特殊的 TransparentProxy
类 - .NET 运行时以特殊方式处理它。
我认为 MarshalByRefObject
可能包含一些额外的内部信息,这对这种机制很有帮助,但我没有对此进行太多研究。
关于.net - MarshalByRefObject 很特别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2720703/
我用 C# 编写了一个非常基本的 Web 服务器,它加载自定义模块来处理对配置文件中指定的特定域名的请求。自定义模块被加载到新的 AppDomain 中,因为我需要能够动态卸载它们(也有利于安全性)。
.NET 有一种称为远程处理的功能,您可以在不同的应用程序域甚至物理机之间传递对象。我不完全理解魔法是如何完成的,因此提出了这个问题。 在远程处理中,有两种传递对象的基本方法 - 要么可以序列化它们(
我有一个 .net WinForms 应用程序,它可以将插件 (dll) 加载到它们自己的 AppDomain 中,每个 dll 使用 domain.CreateInstanceAndUnwrap()
我一直在绞尽脑汁想弄清楚一些事情。所以,我正在寻找建议和研究 Material (通过链接)。场景如下: 我们有一个库(例如,CommonLib),其中包含其他几个应用程序(例如,AppA、AppB、
MarshalByRefObject 的用途是什么? 最佳答案 远程处理;这意味着在 AppDomain 或机器之间,不是序列化和传输对象,对象停留在一端,而代理在另一端创建。对代理的所有方法调用都被
在 AppDomain A 中,我有一个类型为 T 的对象 o。 T 既不是 Serializable 也不是从 MarshalByRefObject 派生的。 T 类型由我无法控制的插件主机提供。
我目前正在修改一个插件架构,以便它利用 AppDomains。我的插件与我在网上找到的许多示例之间的主要区别在于,我的主应用程序不是运行插件并将其结果发送回主应用程序,而是向插件发送信息的应用程序。
我在两个 .NET 应用程序域之间传递一些数据时遇到了一些问题,我希望这里有人可以帮助我。 基本上我拥有的是一个主应用程序 (Main),它将程序集 A 和 B 加载到它的主域中,然后当我运行插件(C
在 VS2010 C# 项目中,我们有一个从 MarshalByRefObject 派生的类,我们使用 Activator.GetObject 来设置它。我们正在使用这个派生类通过网络与一台机器对话。
我有一个案例,我必须跨 AppDomains 使用一些类。为了使它们工作,我让它们继承自 MarshalByRefObject。这些类的一切都按预期工作。但是这些类在我们的整个系统中都在使用,而且 9
各种消息来源解释说 When an object derives form MarshalByRefObject, an object reference will be passed from on
我正在尝试将 C# 应用程序移植到 .NET(客户端服务器),但遇到了序列化问题。 Linux客户端序列化and对象,Windows服务器无法反序列化,报错: System.Runtime.Seria
是否可以确定可用于转换 MarshalByRefObject 对象的接口(interface)? 强制转换运算符如何处理 MarshalByRefObject 对象?它调用 CreateObjRef
我对 .NET Remoting 中的 [Serializable] 和 :MarshalByRefObject 属性感到很困惑。但是我读了很多关于它的文章。如果我使用 [Serializable]
我试图在 stackoverflow 上找到一个解决方案,但似乎找不到一个与我的非常相似的解决方案,所以就到这里吧。我在实验室有一台计算机连接到各种设备,如平移/倾斜装置、相机和光传感器,并安装了所有
在我的 Azure Web 角色代码中,我有一个派生自 System.Security.Principal.IIdentity 的 CustomIdentity 类。在某些时候 .NET 运行时 tr
我正在开发一个需要跨 AppDomain-intra-process 和 inter-process-intra-machine 通信的项目。是的...我知道... NET Remoting 被广泛认
我正在处理我的第一个使用 AppDomains 的项目,我想知道当一个对象从 MarshalByRefObject 派生并且也被标记为 [Serializable] 时会发生什么? 例如: [Seri
如何在像 C# 这样的多继承截断语言中解决“必须是 MarshalByRefObject”? 问题很简单,在某些情况下你只需要继承这个类(基础设施要求)。在这里真的无关紧要,哪种情况。那么,如果您已经
我知道这听起来很愚蠢,但我只是好奇。我的讲师问了这个问题,我们一头雾水。 :D 最佳答案 您的讲师不正确。 foreach(var type in typeof(Uri).Assembly.GetTy
我是一名优秀的程序员,十分优秀!