private Result StoreMessage(MessageContext message, ReceivedMessage receive) { var topicExector = _selector.GetTopicExector(message.Name); var mExecutor = topicExector[message.Group]; if (mExecutor != null) { var mList = mExecutor as List <ConsumerExecutorDescriptor>; var ced = mList.FirstOrDefault(x => x.MethodInfo.Name == receive.Name); if (ced != null) { object reflect = Activator.CreateInstance(ced.ImplTypeInfo); var methodInfo = ced.MethodInfo; var parameters = methodInfo.GetParameters(); List <object> objParams = new List <object>(); objParams = receive.Content.ToModel(objParams); for (int i = 0; i < parameters.Length; i++) { objParams[i] = objParams[i].ToJson().ToModel(parameters[i].ParameterType); } var result = methodInfo.Invoke(reflect, objParams.ToArray()) as Result; Console.WriteLine(result.ToJson()); return(result); } } return(Result.Fail(0)); }
private Result StoreMessage(MessageContext message, PublishedMessage receive) { var queueExector = _selector.GetTopicExector(message.Name); if (queueExector != null) { object reflect = Activator.CreateInstance(queueExector.ImplTypeInfo); var methodInfo = queueExector.MethodInfo; var parameters = methodInfo.GetParameters(); List <object> objParams = new List <object>(); objParams = receive.msgBeanJson.ToModel(objParams); for (int i = 0; i < parameters.Length; i++) { objParams[i] = objParams[i].ToJson().ToModel(parameters[i].ParameterType); } var result = methodInfo.Invoke(reflect, objParams.ToArray()) as Result; return(result); } return(Result.Fail(0)); }