我爱Aspx >> Asp.Net >> Microsoft .Net Remoting系列专题之一:.Net Remoting基础篇public class ServerObject:MarshalByRefObject
{
public Person GetPersonInfo(string name,string sex,int age)
{
Person person = new Person();
person.Name = name;
person.Sex = sex;
person.Age = age;
return person;
}
}
这个类只实现了最简单的方法,就是设置一个人的基本信息,并返回一个Person类对象。注意这里返回的Person类。由于这里所传递的Person则是以传值的方式来完成的,而Remoting要求必须是引用的对象,所以必须将Person类序列化。
因此,在Remoting中的远程对象中,如果还要调用或传递某个对象,例如类,或者结构,则该类或结构则必须实现串行化Attribute[SerializableAttribute]:
[Serializable]
public class Person
{
public Person()
{
}
private string name;
private string sex;
private int age;
public string Name
{
get {return name;}
set {name = value;}
}
public string Sex
{
get {return sex;}
set {sex = value;}
}
public int Age
{
get {return age;}
set {age = value;}
}
}
将该远程对象以类库的方式编译成Dll。这个Dll将分别放在服务器端和客户端,以添加引用。
在Remoting中能够传递的远程对象可以是各种类型,包括复杂的DataSet对象,只要它能够被序列化。远程对象也可以包含事件,但服务器端对于事件的处理比较特殊,我将在本系列之三中介绍。
三、服务器端根据第一部分所述,根据激活模式的不同,通道类型的不同服务器端的实现方式也有所不同。大体上说,服务器端应分为三步:
1、注册通道要跨越应用程序域进行通信,必须实现通道。如前所述,Remoting提供了IChannel接口,分别包含TcpChannel和HttpChannel两种类型的通道。这两种类型除了性能和序列化数据的格式不同外,实现的方式完全一致,因此下面我们就以TcpChannel为例。
注册TcpChannel,首先要在项目中添加引用“System.Runtime.Remoting”,然后using名字空间:System.Runtime.Remoting.Channel.Tcp。代码如下:
Ҷƪл˵?
Microsoft .NET Remoting:技术概..[05-15]
Microsoft .Net Remoting系列专题..[05-15]
.NET Framework中的串行化操作[05-15]
.Net Remoting与Server 对象详解[05-15]
解析.Net框架下的序列化机制[05-15]
微软 .NET Remoting体系结构评估[05-15]
ASP.NET创建Web服务之使用事务[05-15]
ASP.NET创建Web服务之发布和部署[05-15]
HTTP 安全性和 ASP.NET Web 服务[05-15]
运用VB.net创建Web服务访问程序[05-15]
一步一步学Remoting之四:承载方..[05-15]
一步一步学Remoting之一:从简单..[05-15]
一步一步学Remoting之五:异步操..[05-15]
Microsoft .NET Remoting:技术概..[05-15]
Remoting事件机制续[05-15]
Remoting和Web服务的区别[05-15]
Microsoft .Net Remoting系列专题..[05-15]
如何解决Remoting无法传输存储过..[05-15]
.NET Framework中的串行化操作[05-15]
.Net Remoting与Server 对象详解[05-15]