我爱Aspx >> Asp.Net >> Microsoft .NET Remoting:技术概述
Microsoft .NET Remoting:技术概述
- :未知 Դ:internet :2007-5-5 19:51:00 ؼ:.net
- 注册一个或多个通道,使用 RemotingServices
注册一个或多个远程对象,然后等待被终止。请注意,已注册的通道和对象只有在用来注册它们的进程活动时才可以使用。如果退出了该进程,则会自动从远程处理服务中删除它注册的所有通道和对象。在框架中注册远程对象时,需要以下四项信息:
- 包含类的程序集名称。
- 远程对象的类型名称。
- 客户端定位对象时将使用的对象 URI。
- 服务器激活所需的对象模式。该模式可以是 SingleCall
,也可以是 Singleton
。
远程对象可以通过下列两种方式注册:调用 RegisterWellKnownType
,将上述信息作为参数传递;或将上述信息存储在配置文件中,然后调用 ConfigureRemoting
并将该配置文件的名称作为参数传递。以上两种方法执行的功能相同,因此您可以使用它们中的任意一种来注册远程对象。当然,后一种方法更方便些,因为无需重新编译宿主应用程序即可改变配置文件的内容。以下代码片断显示了如何将 HelloService
类注册为 SingleCall
远程对象。RemotingServices.RegisterWellKnownType( "server", "Samples.HelloServer", "SayHello", WellKnownObjectMode.SingleCall); 其中,“server”是程序集的名称,HelloServer
是类的名称,SayHello
是对象 URI。 注册了远程对象后,框架将为该对象创建一个对象引用,然后从程序集中提取与该对象相关的必要元数据。随后,这一信息将与 URI 和程序集名称一起存储在对象引用中(该对象引用将被写入一个用于跟踪已注册远程对象的远程处理框架表中)。请注意,除了在客户端试图调用对象上的某个方法或从客户端激活对象时以外,注册进程不会实例化远程对象自身。 现在,任何知道该对象 URI 的客户端都可以使用 ChannelServices
注册通道,并调用 new
、GetObject
或 CreateInstance
激活对象,从而获得该对象的一个代理。以下代码片断显示了该操作的示例: ChannelServices.RegisterChannel(new TCPChannel); HelloServer obj = (HelloServer)Activator.GetObject( typeof(Samples.HelloServer), "tcp://localhost:8085/SayHello"); 其中,“tcp://localhost:8085/SayHello”表示我们希望在端口 8085 上使用 TCP 协议连接到位于 SayHello
Ҷƪл˵?
- һƪDirectX 8.0 简介
һƪ简单JSP语法
- 关于我们 | 广告服务 | 网站建设 | 版权申明 | 申请链接 | 联系我们
- Copyright © 2007 5iaspx.COM. All Right Reserved.
- 本站内容仅供学习,研究,探讨,个人收藏,如有侵权,敬请联系我们,我们尽快解决!