0

关于 .NET 远程处理,有些事情我只是不明白。好吧,实际上有两件事:

  1. 为什么强调从 MarshalByRef 继承的类而不是原始 COM 样式(我喜欢的)的接口?

  2. 为什么 .NET 远程处理总是迫使您有效地创建某种对象池,而不是允许您将特定实例与 URL 关联?

服务器代码:

RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemotingTypes.Server), "MyURL", WellKnownObjectMode.Singleton);

客户端代码:

RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemotingTypes.Server), "MyURL", WellKnownObjectMode.Singleton);

但是假设我想自己创建“服务器”实例,然后将其绑定到端点?

RemotingTypes.Server myInstance = new RemotingTypes.Server();

现在怎么办?如何将 "myInstance" 与 URL "MyURL" 关联?

4

2 回答 2

1

Nickd 回答的问题:我想知道如何将已创建的实例与 URL 关联,而不是如何让 .NET 远程处理为我执行此操作(我创建的一些实例没有默认构造函数,例如例子)。

我希望会有一些史诗般的回应来解释 .NET 远程处理背后的“哲学”,以及为什么它与类型系统密不可分......

相反,我得出的结论很简单:a) 这是因为 .NET 远程处理很糟糕。不要使用它 b)改用WCF

于 2009-01-08T13:41:57.720 回答
0

我无法真正解决第 1 点和第 2 点,因为我没有 COM 经验,也不懂第 2 点,但要回答您的最后一个具体问题,如果您使用 system.Activator 类,您可以这样做:

RemotingTypes.Server  myInstance = (RemotingTypes.Server) Activator.GetObject(typeof(RemotingTypes.Server), MyUrl);

这意味着您必须在构建时绑定它,但这都是客户端。

请参阅我的类似问题

于 2009-01-05T10:58:15.277 回答