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); } }
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); } }