示例#1
0
        private void _sendMessageToOwner(CallProtocal call)
        {
            var classType  = this.owner.GetType();
            var methodInfo = classType.GetMethod(call.Method, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);

            if (null != methodInfo)
            {
                //if (call.Args != null)
                //{
                //    for (int i = 0; i < call.Args.Length; ++i)
                //    {
                //        if (call.Args[i].GetType() == typeof(Int64))
                //        {
                //            call.Args[i
                //        }
                //    }
                //}
                var ps = methodInfo.GetParameters();
                if (call.Args != null && call.Args.Length > 0 && ps.Length == call.Args.Length)
                {
                    for (int i = 0; i < ps.Length; ++i)
                    {
                        call.Args[i] = System.Convert.ChangeType(call.Args[i], ps[i].ParameterType);
                    }
                }
                methodInfo.Invoke(this.owner, call.Args);
            }
        }
示例#2
0
 private void _sendMessageToOwner(string msg, string param)
 {
     if (this.owner != null)
     {
         var protoc = new CallProtocal();
         protoc.Method = msg;
         protoc.Args   = new object[1] {
             param
         };
         _sendMessageToOwner(protoc);
     }
 }