Пример #1
0
        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));
        }
Пример #2
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));
        }