技术开发 频道

.NET Remoting分布式开发之经典总结篇

  然后建立一个可远程调用的对象,注意远程对象必须继续MarshalByRefObject

  using System;

  using System.Collections.Generic;

  using System.Linq;

  using System.Text;

  using System.Runtime.Serialization.Formatters.Binary;

  using System.IO;

  using Model;

  namespace Manager

  {

  
//类必须继承了MarshalByRefObject,才能进行远程调用

  
public class PersonManager:MarshalByRefObject

  {

  
public List GetList()

  {

  List personList
= new List();

  FileStream stream
= new FileStream("DataSource.sour", FileMode.Open, FileAccess.Read); //在服务器文件里面获取虚拟数据

  BinaryFormatter formatter
= new BinaryFormatter();

  personList
=(List)formatter.Deserialize(stream); //对虚拟数据进行反序列化获取集合

  return personList;

  }

  }

  }

  在一个应用程序中加载服务器端,服务器端的配置有两种试,一是直接写在代码里面。首先建立服务传送方式,可以选择用TcpServerChannel,也可使用HttpChannel,前者有着更高的效率。然后在ChannelService注册此传输通道,最后通过RemotingConfiguration的RegisterWellKnownServiceType方法注册远程对象。

  注意WellKonwnObjectMode可选择为SingleTon或者SingleCall,前者使用单体模式,每个客户端进行访问都会使用同一个远程对象。后者会为每个请求建立一个远程对象。在这个例子里面我们使用SingleTon单体模式。

0
相关文章