/// <summary>
        /// 日志记录方法调用前处理.
        /// </summary>
        /// <param name="methodInvoke">代理方法</param>
        /// <param name="refObject">代理对象</param>
        public IMessage PreProcess(IMessage methodInvoke, MarshalByRefObject refObject)
        {
            IMethodCallMessage call = methodInvoke as IMethodCallMessage;

            XYHLogOperator.WriteLog(new LogMessage()
            {
                MethodName     = call.MethodName,
                MethodParam    = JsonConvert.SerializeObject(call.Args),
                LogProjectName = call.TypeName,
                Level          = LogLevel.Debug
            });
            return(null);
        }
        /// <summary>
        /// 日志记录方法异常处理.
        /// </summary>
        /// <param name="ex">异常</param>
        /// <param name="methodInvoke">代理方法</param>
        /// <param name="refObject">代理对象</param>
        public IMessage ExceptionProcess(Exception ex, IMessage methodInvoke, MarshalByRefObject refObject, DateTime executeStartTime, DateTime executeEndTime)
        {
            IMethodCallMessage call = methodInvoke as IMethodCallMessage;

            XYHLogOperator.WriteLog(new LogMessage()
            {
                MethodName       = call.MethodName,
                MethodParam      = JsonConvert.SerializeObject(call.Args),
                LogProjectName   = call.TypeName,
                Level            = LogLevel.Error,
                Exception        = ex.InnerException,
                ExecuteEndTime   = executeEndTime,
                ExecuteStartTime = executeStartTime
            });
            return(null);
        }
        /// <summary>
        /// 日志记录方法调用后处理.
        /// </summary>
        /// <param name="methodInvoke">代理方法</param>
        /// <param name="returnInvoke">代理返回</param>
        /// <param name="refObject">代理对象</param>
        public IMessage PostProcess(IMessage methodInvoke, IMessage returnInvoke, MarshalByRefObject refObject, DateTime executeStartTime, DateTime executeEndTime)
        {
            IMethodCallMessage call   = methodInvoke as IMethodCallMessage;
            ReturnMessage      result = returnInvoke as ReturnMessage;

            XYHLogOperator.WriteLog(new LogMessage()
            {
                MethodName       = call.MethodName,
                MethodParam      = JsonConvert.SerializeObject(call.Args),
                MethodResult     = JsonConvert.SerializeObject(result.Properties["__Return"]),
                LogProjectName   = call.TypeName,
                ExecuteEndTime   = executeEndTime,
                ExecuteStartTime = executeStartTime,
                Level            = LogLevel.Debug
            });

            return(returnInvoke);
        }