Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)qqpublished in(发表于) 2014/7/9 1:35:51 ASP.NET Remoting体系结构(八)
ASP.NET Remoting体系结构(八): 构建远程类对象
构建远程类对象(1)在VS2005中新建一个项目,选择Windows窗体模板,将窗体的输出类型设置为类库并命名为RemotingClass,同时将应用程序的输出类型改为类库,如图1所示。(2)将窗体类改为FarClass并在窗体代码文件中加入如下代码:namespace RemotingClass{public partial class FarClass : Form{public static int i;public FarClass(){InitializeComponent();}public int GetTime(){StreamWriter sw = new StreamWriter("hb.txt", True);sw.WriteLine("远程类对象被第" + i + "次调用" + DateTime.Now.ToString());sw.Close();i++;MessageBox.Show("远程类在服务器端对象被"+i+"次调用"+DateTime.Now.ToString());return i;}}}如果是用户编写的远程类,则必须继承System.MarshalByRefObject。因为Form类已经继承于System.MarshalByRefObject,所以本例没有继承。代码如下:public static int i;制作一个计数器,来记录远程类对象被调用了几次,代码如下:StreamWriter sw = new StreamWriter("hb.txt", True);sw.WriteLine("远程类对象被第" + i + "次调用" + DateTime.Now.ToString());sw.Close();StreamWriter是一个专门用于文件写入的类,这里用来对远程类的调用做一个记录以便体会远程调用的这种体系。StreamWriter("hb.txt", True) 构造函数中的第一个参数为文件名,第二个参数如果为True,则表示在文件末尾追加;fasle表示写入的内容要覆盖以前内容。sw.WriteLine()函数是用来将一个字符串写入一行。DateTime.Now.ToString()是系统当前时间。最后将Stream Writer对象的实例关闭。代码如下:MessageBox.Show("远程类在服务器端对象被"+i+"次调用"+DateTime.Now.ToString());在弹出的MessageBox中,在服务端看到客户端调用远程类,每调用一次就可以看到服务端弹出的窗体以显示远程类的调用。(3)编译程序生成类库。完整程序代码如下:★ ★★★★Program.cs主程序文件完整程序代码★★★★★using System;using System.Collections.Generic;using System.Windows.Forms;namespace RemotingClass{static class Program{/// /// 应用程序的主入口点。/// [STAThread]static void Main(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(new FarClass());}}}★ ★★★★RemotingClass.cs窗体代码文件完整程序代码★★★★★using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.IO;namespace RemotingClass{public partial class FarClass : Form{public static int i;public FarClass(){InitializeComponent();}public int GetTime(){StreamWriter sw = new StreamWriter("hb.txt", true);sw.WriteLine("远程类对象被第" +i + "次调用" + DateTime.Now.ToString());sw.Close();i++;MessageBox.Show("远程类在服务器端对象被"+i+"次调用"+DateTime.Now.ToString());return i;}}}★ ★★★★RemotingClass.designer.cs窗体设计文件完整程序代码★★★★★namespace RemotingClass{partial class FarClass{/// /// 必需的设计器变量。 赞 If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长) QQ:154298438 QQ:417480759
赞