コード例 #1
0
        //获取参数信息。
        private string getExecParamsInfo(System.Runtime.Remoting.Messaging.IMethodCallMessage cellmsg)
        {
            if (cellmsg.ArgCount == 0)
            {
                return("()");
            }
            object[] pars  = cellmsg.Args;
            int      count = pars.Length;
            string   msg   = "(";

            for (int i = 0; i < count; i++)
            {
                string parName = cellmsg.GetArgName(i);
                msg += parName + "=";
                if (pars[i] == null)
                {
                    msg += "null";
                }
                else
                {
                    //截取过长的参数值 (在方法调用中,日记记录参数只是一个参考)
                    string temp = pars[i].ToString();
                    if (temp.Length > MB.BaseFrame.SOD.LOG_PARAMTER_VALUE_MAX_LENGTH)
                    {
                        temp = temp.Substring(0, MB.BaseFrame.SOD.LOG_PARAMTER_VALUE_MAX_LENGTH) + "......";
                    }
                    msg += temp;
                }
                msg += ",";
            }
            msg  = msg.Remove(msg.Length - 1, 1);
            msg += ")";
            return(msg);
        }
コード例 #2
0
        //获取参数信息。
        private string getExecParamsInfo(System.Runtime.Remoting.Messaging.IMethodCallMessage cellmsg)
        {
            if (cellmsg.ArgCount == 0)
            {
                return("()");
            }
            object[] pars  = cellmsg.Args;
            int      count = pars.Length;
            string   msg   = "(";

            for (int i = 0; i < count; i++)
            {
                string parName = cellmsg.GetArgName(i);
                msg += parName + "=";
                if (pars[i] == null)
                {
                    msg += "null";
                }
                else
                {
                    msg += pars[i].ToString();
                }
                msg += ",";
            }
            msg  = msg.Remove(msg.Length - 1, 1);
            msg += ")";
            return(msg);
        }
コード例 #3
0
        //方法开始执行.
        private DateTime beginExecuting(string methodName, System.Runtime.Remoting.Messaging.IMethodCallMessage cellmsg)
        {
            DateTime startTime = System.DateTime.Now;

            string msg = "调用方法:" + methodName;

            msg += getExecParamsInfo(cellmsg) + "  " + startTime.ToLongTimeString() + " " + startTime.Millisecond.ToString();
            //Console.WriteLine();
            MB.Util.TraceEx.Write(msg);

            return(startTime);
        }
コード例 #4
0
 private void Proxy_ErrorExecuting(object sender, System.Runtime.Remoting.Messaging.IMethodCallMessage e, object innerException)
 {
     _EndTime = DateTime.Now;
     //Log(e.MethodName, e.Args);
     string[] parameters = new string[] {
         //"Executed Method     -> "+e.MethodName,
         "Exception Message   -> " + innerException.ToString(),
         "Start DateTime      -> " + _StartTime,
         "End DateTime        -> " + _EndTime,
         "Used Time           -> " + (_EndTime - _StartTime).Seconds.ToString(),
         "------------------------------------------------------------------"
     };
     Log(parameters);
 }
コード例 #5
0
        private void Proxy_BeforeExecute(object sender, System.Runtime.Remoting.Messaging.IMethodCallMessage e, object returnValue)
        {
            _StartTime = DateTime.Now;
            int           index = 0;
            StringBuilder args  = new StringBuilder();

            foreach (object arg in e.Args)
            {
                args.Append(e.GetInArgName(index++));
                args.Append(" : ");
                args.Append(arg + ",");
            }

            string[] parameters = new string[] {
                "Execute Method Name -> " + e.MethodName,
                "Passed Parameters   -> " + args.ToString()
            };
            Log(parameters);
        }
コード例 #6
0
        private void Proxy_AfterExecute(object sender, System.Runtime.Remoting.Messaging.IMethodCallMessage e, object returnValue)
        {
            _EndTime = DateTime.Now;
            string[] parameters = new string[5];
            if (returnValue != null)
            {
                if (!returnValue.GetType().IsGenericType)
                {
                    parameters = new string[] {
                        "Returned Value      -> " + returnValue.ToString(),
                        "Start DateTime      -> " + _StartTime,
                        "End DateTime        -> " + _EndTime,
                        "Used Time           -> " + (_EndTime - _StartTime).TotalMilliseconds.ToString(),
                        "------------------------------------------------------------------"
                    };
                }
                else
                {
                    //    int index = 0;
                    //    StringBuilder args = new StringBuilder();
                    //    foreach (string arg in returnValue.GetType().)
                    //    {
                    //        args.Append(e.GetInArgName(index++));
                    //        args.Append(" : ");
                    //        args.Append(arg + ",");
                    //    }
                    //    File.AppendAllLines("Log.txt", new string[] {
                    //"Execute DateTime : "+DateTime.Now,
                    //e.MethodName, args.ToString() });
                }
            }
            else
            {
                parameters = new string[] {
                    "Start DateTime      -> " + _StartTime,
                    "End DateTime        -> " + _EndTime,
                    "Used Time           -> " + (_EndTime - _StartTime).TotalMilliseconds.ToString(),
                    "------------------------------------------------------------------"
                };
            }

            Log(parameters);
        }
コード例 #7
0
 /// <summary>
 /// 方法调用之前。
 /// </summary>
 /// <param name="msg"></param>
 public void BeginProcess(System.Runtime.Remoting.Messaging.IMessage msg)
 {
     System.Runtime.Remoting.Messaging.IMethodCallMessage callMsg = msg as System.Runtime.Remoting.Messaging.IMethodCallMessage;
     beginExecuting(callMsg.MethodName, callMsg);
 }
コード例 #8
0
        public static System.Runtime.Remoting.Messaging.IMethodReturnMessage ExecuteMessage(MarshalByRefObject target, System.Runtime.Remoting.Messaging.IMethodCallMessage reqMsg)
        {
            Contract.Requires(target != null);

            return(default(System.Runtime.Remoting.Messaging.IMethodReturnMessage));
        }
コード例 #9
0
 public object UnsafeDeserializeMethodResponse(System.IO.Stream serializationStream, System.Runtime.Remoting.Messaging.HeaderHandler handler, System.Runtime.Remoting.Messaging.IMethodCallMessage methodCallMessage)
 {
 }
        public Object UnsafeDeserializeMethodResponse(Stream serializationStream, System.Runtime.Remoting.Messaging.HeaderHandler handler, System.Runtime.Remoting.Messaging.IMethodCallMessage methodCallMessage)
        {
            Contract.Ensures(false);

            return(default(Object));
        }
コード例 #11
0
ファイル: QEvent.cs プロジェクト: klhurley/qf4net
 public QEvent(System.Runtime.Remoting.Messaging.IMethodCallMessage msg)
 {
     Init(null, msg.MethodName);
     m_QData = msg;
 }
コード例 #12
0
 public static System.Runtime.Remoting.Messaging.IMethodReturnMessage ExecuteMessage(System.MarshalByRefObject target, System.Runtime.Remoting.Messaging.IMethodCallMessage reqMsg)
 {
 }