我还没有得到关于.NET远程处理的东西。嗯,实际上有两件事:
为什么重点放在继承MarshalByRef的类而不是原始COM样式(我喜欢的)接口?
为什么.NET远程处理总是强迫您有效地创建某种对象池,而不是允许您将特定的实例与URL相关联?
服务器代码:
RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemotingTypes.Server), "MyURL", WellKnownObjectMode.Singleton);
客户代码:
RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemotingTypes.Server), "MyURL", WellKnownObjectMode.Singleton);
但是假设我想自己创建“Server”实例,然后将其绑定到端点?
RemotingTypes.Server myInstance = new RemotingTypes.Server();
现在怎么办?如何将“myInstance”与URL“MyURL”相关联?
答案 0 :(得分:1)
Nickd回答的问题:我想知道如何将已创建的实例与URL相关联,而不是如何让.NET远程处理为我这样做(我创建的一些实例没有默认值)构造函数,例如)。
我希望能有一些史诗般的回应来解释.NET远程处理背后的“哲学”,以及为什么它与类型系统有着千丝万缕的联系......
我所得出的结论仅仅是: a)这是因为.NET远程处理很糟糕。不要使用它 b)改为使用WCF
答案 1 :(得分:0)
我无法真正解决第1点和第2点,因为我没有COM的经验而且我不理解2,但是要回答您的具体最终问题,如果您使用system.Activator类,您可以这样做:
RemotingTypes.Server myInstance = (RemotingTypes.Server) Activator.GetObject(typeof(RemotingTypes.Server), MyUrl);
这意味着你必须在施工时绑定它,但它都是客户端。
查看我的similar question。