/// <summary>
        /// 发送单向消息
        /// </summary>
        /// <typeparam name="TContract">契约类型</typeparam>
        /// <typeparam name="TArgument">参数类型</typeparam>
        /// <param name="function">消息发送代理</param>
        /// <param name="argument">发送参数</param>
        public static void Send <TContract, TArgument>(SendOneWayMessage <TContract, TArgument> function, TArgument argument) where TContract : class
        {
            if (function == null)
            {
                throw new ArgumentNullException("function");
            }

            bool      isSuccess  = false;
            int       retryCount = RETRY_COUNT_FOR_FAILED;
            Exception exception  = null;

            while (!isSuccess && retryCount-- > 0)
            {
                try
                {
                    TContract svc = transporter.GetChannel <TContract>();
                    function(svc, argument);
                    isSuccess = true;
                }
                catch (FaultException ex)
                {
                    ExceptionHandler.Handle(ex);
                    throw;
                }
                catch (Exception ex)
                {
                    ExceptionHandler.Handle(ex);
                    exception = ex;
                    SendFailedRetryCounter <TContract>(retryCount, exception);
                }
            }

            if (!isSuccess)
            {
                SendFailed <TContract>(exception);
            }
        }
 /// <summary>
 /// 获取指定服务接口类型的服务通道
 /// </summary>
 /// <typeparam name="TInterface">指定服务接口类型</typeparam>
 /// <returns>指定服务接口类型的服务通道</returns>
 public TInterface GetChannel <TInterface>() where TInterface : class
 {
     return(_transporter.GetChannel <TInterface>());
 }