/// <summary> /// Execute Binding Method /// </summary> /// <param name="instance">MSMQ 处理器实现</param> /// <param name="msmqMsg">待处理 MSMQ 消息</param> public void Execute(TMsmqHandlerImpl instance, string msmqMsg) { ThrowHelper.ThrowIfNull(instance, "instance"); ThrowHelper.ThrowIfNull(msmqMsg, "msmqMsg"); var resObj = MsmqMessageJsonObject.Parse(msmqMsg); Execute(instance, resObj); }
/// <summary> /// Execute Binding Method /// </summary> /// <param name="instance">MSMQ 处理器实现</param> /// <param name="msg">待处理消息</param> internal void Execute(TMsmqHandlerImpl instance, MsmqMessageJsonObject msg) { ThrowHelper.ThrowIfNull(instance, "instance"); ThrowHelper.ThrowIfNull(msg, "msg"); ThrowHelper.ThrowIfNull(msg.HandlerName, "msg.HandlerName"); ThrowHelper.ThrowIfNull(msg.JsonMessage, "msg.JsonMessage"); var handlerMethod = m_MsmqContract_Cache.GetValue(msg.HandlerName); ThrowHelper.ThrowIfNull(handlerMethod, "handlerMethod"); var msgType = handlerMethod.GetParameters()[0].ParameterType; var msgObj = JsonHelper.DeserializeObject(msg.JsonMessage, msgType); ThrowHelper.ThrowIfNull(msgObj, "msgObj"); //handlerMethod.FastInvoke(instance, new object[] { msgObj }); handlerMethod.Invoke(instance, new[] { msgObj }); }