上次写了remoting 的简单运用,在项目中我们服务端与客户端肯定不会去直接调用一个类,一般都是通过接口。下面我将自己项目里的一部分代码截取出来,进行讲解首先编写接口

编写接口

namespace YTKJ.Security.Interface
{public interface IMachineControlService{void OpenDoor(string door, string direction);}

为了简单理解,接口中只写了一个方法,下来我在服务端将实现这个接口。

实现接口

 namespace PSIMS.Machine.Control{public delegate void OpenDoorEventHandler(string door, string direction);[Serializable]class MachineControlService : MarshalByRefObject,IMachineControlService{public static event OpenDoorEventHandler OpenDoorEvent;/// <summary>/// 重载初始化生命周期,改为永久/// </summary>/// <returns></returns>public override object InitializeLifetimeService(){return null;}public void OpenDoor(string door, string direction){if (OpenDoorEvent != null){OpenDoorEvent(door ,direction); }}}}

在这里首先实现类需要实现MarshalByRefObject接口,为OpenDoor方法设置了事件和委托。下来我们看看服务端应该怎么注册remoting服务。

注册Remoting服务

            TcpServerChannel channels;channels = new TcpServerChannel(20001);ChannelServices.RegisterChannel(channels, false);RemotingConfiguration.RegisterWellKnownServiceType(typeof(MachineControlService), "YTKJ.Security.Interface.IMachineControlService", WellKnownObjectMode.Singleton);MachineControlService.OpenDoorEvent += new OpenDoorEventHandler(MachineControlService_OpenDoor);/// <summary>/// 打开门操作/// </summary>/// <param name="door"></param>/// <param name="direction"></param>private void MachineControlService_OpenDoor(string door, string direction){//这里写你的操作}

这样服务端做的事情就完成了,下来我们看看客户端怎么调用

客户端调用

            IMachineControlService a;a= (YTKJ.Security.Interface.IMachineControlService)Activator.GetObject(typeof(YTKJ.Security.Interface.IMachineControlService), "tcp://192.168.11.10:20001/YTKJ.Security.Interface.IMachineControlService");a.OpenDoor("","");

客户端的调用很简单,声明接口,使用方法获得远程调用接口,调用接口中的方法。这里有个需要注意的问题,在客户端调用的类型YTKJ.Security.Interface.IMachineControlService一定要与服务端的命名空间和接口名一致,否则客户端会报无法加载类型的异常
这样启动项目远程调用就完成了。

remoting项目运用相关推荐

  1. 基于.Net Remoting的项目总结报告

    Based on .Net Remoting Project Summary Report<?xml:namespace prefix = o ns = "urn:schemas-mi ...

  2. 基于.net平台remoting、DB2技术的大型分布式HIS系统架构及开发(项目架构师方向)...

    课程链接:http://***/goods.php?id=131 培训定位: 适合于.net方向有一定的工作经验提高用.本次课程涉及到系统架构.DB2.抽象工厂.组件式编程.基于角色和个人的混合授权思 ...

  3. 做开发很久了 Remoting 一直没有碰过,正好最近的项目上面用,就拿出来给大家看看

    首先  Remoting 严格来说分为3个部分, 服务端 ,客户端,中间件,中间件是指把要公布的方法和接口写成dll的形式,给客户端和服务端调用. 不说其他的了 ,直接上代码 RemotingMode ...

  4. 远程处理Remoting

    日程 ?应用程序域 ?Remoting和原理 ?编程式和管理式配置实例 用应用程序域 操作系统和运行库环境通常会在应用程序间提供某种形式的隔离.例如,Microsoft Windows 使用进程来隔离 ...

  5. Flex与ASP.NET通过Remoting方式进行通讯

    前两天研究了一下Flex与.NET如何进行数据交互,并写了一个文档,后面叙述得还不是很详细,还可以再研究深一点.本文是关于Flex与ASP.NET通过Remoting方式进行通讯的内容,过段时间有空还 ...

  6. 泛型委托在项目中的应用

    Action<T> 泛型委托:封装一个方法,该方法只采用一个参数并且不返回值.可以使用此委托以参数形式传递方法,而不用显式声明自定义的委托.该方法必须与此委托定义的方法签名相对应.也就是说 ...

  7. 阿里好的开源项目有哪些(善用工具)

    阿里好的开源项目有哪些(善用工具) 一.总结 一句话总结:善用工具,可以极大的提升开发效率. 1.阿里好的开源项目自己目前可能用得上的有哪些(举两个)? JSON处理器 fastjson 开源数据库A ...

  8. Remoting和Webservice有什么区别

    REMOTING和WEBSERVICE有什么区别 其实现的原理并没有本质的区别,在应用开发层面上有以下区别: 1.Remoting可以灵活的定义其所基于的协议,如果定义为HTTP,则与Web Serv ...

  9. Webcast.NET Remoting学习笔记(5)使用配置文件

    使用配置文件 使用配置文件主要有三点好处: 1 简化代码,将配置相关的代码写到配置文件中,程序的逻辑处理更清晰. 2 便于更改配置,项目的配置有可能会产生变化,例如已经注册的通道端口被占用等等,有了配 ...

最新文章

  1. 福利,PyTorch中文版官方教程来啦(附下载)
  2. 【动态规划】背包模型
  3. 使用镜像加速 Rtools 下载与安装
  4. R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(分组箱体框颜色调色板配置)实战
  5. HBase 与 MapReduce 集成
  6. windows连linux工具,Windows连接Linux工具
  7. 基于CASIA-GaitDatasetB步态图像轮廓数据库的步态周期检测与步态角度特征MATLAB源码
  8. mdkstc系列器件支持包下载_Qorvo PAC系列高集成度电机控制芯片及应用
  9. 单源最短路径(Dijkstra算法)
  10. cs文件中控制页面table的大小、title名称(.aspx)
  11. 打砖块小游戏php程序,利用原生js实现html5打砖块小游戏(代码示例)
  12. mongodb or and 条件拼凑 Query.And Query.Or
  13. shopxo首页的新闻头条栏:如何隐藏或关闭?
  14. python入门--动态绑定属性和方法
  15. python ttk separator_Python3 tkinter基础 Menu add_cascade 多级菜单 add_separator 分割线
  16. 星痕 轻松实现大屏数据可视化_数据可视化的一些思考丨如何做出令人满意的大屏可视化设计(一)...
  17. c语言10以内随机数生成器,C语言随机数生成器
  18. win10电脑wifi服务器未响应,Win10系统点击无线图标没反应的解决方法
  19. uniapp 返回页面刷新/小程序获取用户信息之后登录和退出登录
  20. 中科大计算机学院潘镇,中科大计算机学院招生导师

热门文章

  1. RPC服务器不可用解决方法汇集
  2. AD637原理图PCB电路设计,使用经验和建议——【电路模块经验10】
  3. 线路负载及故障检测装置《我搜集的资料》
  4. 通用 Mapper UUID 简单示例
  5. tensorflow学习笔记
  6. 邵阳学院大学计算机基础实验报告答案,实验报告正文(大学计算机基础)
  7. 《面朝大海,春暖花开》-海子
  8. coreldraw凸起字符_CorelDRAW中如何插入特殊符号字体
  9. [acm170] Balloon Comes!
  10. 郁闷啊,三点多钟还没睡,休息一下,看下摸胸小苹果。