コード例 #1
0
ファイル: RpcProxyFactory.cs プロジェクト: ilahsa/bai_pro
 /// <summary>
 ///		注册客户端Channel
 /// </summary>
 /// <param name="channel">具体的Channel实体</param>
 /// <remarks>一般来说,客户端Channel针对每种协议注册一个便可以</remarks>
 public static void RegisterClientChannel(RpcClientChannel channel)
 {
     lock (_syncRoot) {
         if (!_channels.ContainsKey(channel.Protocol))
         {
             _channels.Add(channel.Protocol, channel);
         }
     }
 }
コード例 #2
0
ファイル: RpcProxyFactory.cs プロジェクト: ilahsa/bai_pro
        /// <summary>
        ///		获取一个连接
        /// </summary>
        /// <param name="serverUri"></param>
        /// <param name="serviceRole"></param>
        /// <returns></returns>
        public static RpcConnection GetConnection(ServerUri serverUri, string serviceRole)
        {
            RpcClientChannel channel = GetChannel(serverUri);

            RpcConnection conn;

            lock (_syncRoot) {
                if (!_connections.TryGetValue(serverUri, out conn))
                {
                    conn = channel.CreateConnection(serverUri, RpcConnectionMode.Simplex);
                    // conn.ServiceRole =
                    _connections.Add(serverUri, conn);
                }
            }
            return(conn);
        }