Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > .NET Remoting——practice & progress(2):WellKnown已知类型
【标  题】:.NET Remoting——practice & progress(2):WellKnown已知类型
【关键字】:.NET,Remoting,practice,progress,WellKnown
【来  源】:http://blog.csdn.net/ristona/archive/2006/11/26/1414877.aspx

.NET Remoting——practice & progress(2):WellKnown已知类型

Your Ad Here         为将Remote Object注册到服务器端,并且让客户端可以创建并使用该远程对象,可采用服务器端激活和客户端激活模式。

       当服务器端将远程对象注册到服务器端时,远程对象并没有实例化。当客户端获取远程对象时,远程对象仍然没有实例化。只有当客户端调用远程对象方法时,远程对象才会在服务器端生成实例化对象。

       服务器端激活模式又分为SingletonSingleCall两种模式:

       ØSingleton

       Singleton从字面上很容易获知,当选择Singleton模式时,在服务器端的远程对象将会有零或至多一个实例化对象。

       服务器端注册远程对象的代码事例如下:

       RemotingConfiguration.RegisterWellKnownServiceType(typeof(Calculator),
"CalculatorService", WellKnownObjectMode.Singleton);

       服务器端注册远程对象的配置文件事例如下:

<wellknown mode="Singleton"                    type="Inovout.Remoting.RemotingObject.Calculator,RemotingObjectClassLibrary" 
                objectUri="CalculatorService"/>

客户端获取远程对象的代码事例如下:

calculator = (Calculator)Activator.GetObject(
typeof(Calculator), "tcp://localhost:8891/CalculatorService");

客户端获取远程对象的配置事例如下:

<wellknown 
          type="Inovout.Remoting.RemotingObject.Calculator,RemotingObjectClassLibrary" 
          url="tcp://localhost:8891/CalculatorService" />
Calculator calculator = new Calculator();

       客户端运行结果效果图
Singletom客户端运行效果图

 

       ØSingleCall

       SingleCallSingleton的不同在于,SingleCall可以在客户端调用远程对象方法时,为每个客户端生成远程对象实例对象。但是,当远程对象方法调用完成后,刚生成的远程对象实例化对象会立即销毁。当下次再次调用远程对象方法,会再次生成远程对象实例化对象。

       服务器端注册远程对象的代码事例如下:

RemotingConfiguration.RegisterWellKnownServiceType(typeof(Calculator),
"CalculatorService", WellKnownObjectMode. SingleCall);

       服务器端注册远程对象的配置文件事例如下:

<wellknown mode="SingleCall"                                   type="Inovout.Remoting.RemotingObject.Calculator,RemotingObjectClassLibrary" 
                objectUri="CalculatorService"/>

       客户端获取远程对象的代码事例如下:

       Calculator calculator = (Calculator)Activator.GetObject(
typeof(Calculator), "tcp://localhost:8891/CalculatorService");

       客户端获取远程对象的配置事例如下:

<wellknown 
         type="Inovout.Remoting.RemotingObject.Calculator,RemotingObjectClassLibrary" 
          url="tcp://localhost:8891/CalculatorService" />
calculator = new Calculator();

       客户端运行结果效果图
SingleCall客户端运行效果图

 

       服务器激活模式对于客户端而言,所有代码完全相同,原因很容易解释。因为在这种激活模式下,是由服务器端来决定远程对象相关信息和状态。但是,由于.NET Remoting为开发人员做了非常好的封装,也使开发人员非常容易完成SingletonSingleCall两种服务器激活模式的注册工作,而且两种模式的代码几乎完全一样。两种服务器激活模式具体不同点如下:

比例项目

Singleton

SingleCall

实例化对象个数

1

为每个客户端生成一个实例化对象

生存周期

由服务器端租约决定

调用完方法后立即销毁

状态

 

给自定义控件加个个性化图标:【上一篇】
delphi.net的eco视频教程二讲(待续):【下一篇】
【相关文章】
  • .net web.config文件详解
  • vb.net 如何判断文件是否在外部被修改?
  • 经典与现代的结合:在MFC中集成RAD .NET框架
  • 本周ASP.NET英文技术文章推荐[11/19 - 11/25]
  • 一个asp.net Page的生死轮回
  • 创建符合标准的、有语意的HTML页面——ASP.NET 2.0 CSS Friendly Control Adapters 1.0发布
  • Anthem.NET试用手记之性能优化篇。
  • [ZT][cu.net]安装多操作系统分区,grub的设置问题
  • asp.net中文件的路径
  • PHP 5+MySQL+SQLite+Zend+ASP+ASP.NET+Perl+CGIOpenSSL的服务器一个软件搞定
  • 【随机文章】
  • Modem通讯意外处理
  • family-house-money
  • 怀旧经典:微软windows是怎么成为主流的
  • 兰州地区全国计算机等级考试地点
  • HTML文件HEAD内部标记浅析
  • WebSphere应用服务器 [转自小龙亭]
  • C语言入门之指针的慨念(2)
  • 平板天线
  • 编写自定义任务,轻松扩展Ant
  • 验证Modem配置
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.