zoukankan      html  css  js  c++  java
  • WCF 中 IPC 跨进程访问对象

    直接上代码:

    服务端:
      private
    static string ServerChannelId = $"ScanSnapHome-{Environment.UserName}";   var serverChannel = IpcServerChannelUtil.GetIpcServerChannelInstance(ServerChannelId);   ChannelServices.RegisterChannel(serverChannel, true);   sharingData = new SharingData();   sharingData.OnNotify += new SharingData.CallEventHandler(OnNotify); // OnNotify 回调函数,就不上传了   RemotingServices.Marshal(sharingData, "SharingData", typeof(SharingData));
    class SharingData : MarshalByRefObject
        {
            public class HomeDataEventArgs : EventArgs
            {
                public string Param { get; private set; }
    
                public string SerialNo { get; private set; }
    
                public ModeConstant Mode { get; private set; }
    
                public string ContentId { get; private set; }
    
                public HomeDataEventArgs(string param, string serialNo, ModeConstant mode, string contentId)
                {
                    this.Param = param;
                    this.SerialNo = serialNo;
                    this.Mode = mode;
                    this.ContentId = contentId;
                }
            }
    
            public delegate void CallEventHandler(HomeDataEventArgs e);
            public event CallEventHandler OnNotify;
            public void DataNotify(string param, string serialNo, ModeConstant mode, string contentId)
            {
                OnNotify(new HomeDataEventArgs(param, serialNo, mode, contentId));
            }
    
            public override object InitializeLifetimeService()
            {
                return null;
            }
        }

    客户端:
    clientChannel = new IpcClientChannel();
    ChannelServices.RegisterChannel(clientChannel, true);
    sharingData = (SharingData)Activator.GetObject(typeof(SharingData), $"ipc://{ServerChannelId}/SharingData");  // 服务器中的ServerChannelId变量
    这里就完成了,客户端就可以拿到服务器的SharingData对象。
     
  • 相关阅读:
    KVM + LinuxBridge 的网络虚拟化解决方案实践
    netfilter/iptables 防火墙
    Linux 的路由功能
    使用 tcpdump 抓包分析 TCP 三次握手、四次挥手与 TCP 状态转移
    the quieter you become,the more you could see.
    ghost和WINHEX磁盘备份功能的区别
    快速格式化和非快速格式化
    软件是如何控制硬件的?
    如何思考一个问题?
    遇到劣质空气开关了
  • 原文地址:https://www.cnblogs.com/ilison/p/12455431.html
Copyright © 2011-2022 走看看