public static BuildAcknowledgeMessage ( |
||
message | Incoming message. | |
Résultat | AcknowledgeMessage |
/// <summary> /// Serializes a reply message from a specified message version, array of parameters, and a return value. /// </summary> /// <param name="messageVersion"> /// The SOAP message version. /// </param> /// <param name="parameters"> /// The out parameters. /// </param> /// <param name="result"> /// The return value. /// </param> /// <returns> /// The serialized reply message. /// </returns> public Message SerializeReply(MessageVersion messageVersion, object[] parameters, object result) { // An AMF operation if (OperationContext.Current.IncomingMessageProperties.ContainsKey(MessagingHeaders.InvokerMessageBody)) { var requestMessage = (AmfMessage)OperationContext.Current.IncomingMessageProperties[MessagingHeaders.InvokerMessageBody]; // An RPC operation if (OperationContext.Current.IncomingMessageProperties.ContainsKey(MessagingHeaders.RemotingMessage)) { var rpcMessage = (RemotingMessage) OperationContext.Current.IncomingMessageProperties[MessagingHeaders.RemotingMessage]; AcknowledgeMessage acknowledge = AmfOperationUtil.BuildAcknowledgeMessage(rpcMessage); acknowledge.Body = result; result = acknowledge; } var replyHeaders = new Dictionary <string, AmfHeader>(); var replyMessage = new AmfMessage { Data = result, Target = AmfOperationUtil.CreateResultReplyTarget(requestMessage), Response = string.Empty }; return(new AmfGenericMessage(replyHeaders, replyMessage)); } throw new OperationCanceledException(Errors.AmfGenericOperationFormatter_SerializeReply_InvalidOperation); }
/// <summary> /// Handle command message: a clinet ping. /// </summary> private AmfGenericMessage HandleClientPing(AmfGenericMessage request, CommandMessage message) { var acknowledge = AmfOperationUtil.BuildAcknowledgeMessage(message); acknowledge.Headers = new Dictionary <string, object> { { CommandMessageHeader.MessagingVersion, Capabilities.MessagingVersion } }; return(AmfOperationUtil.BuildMessageReply(request, acknowledge)); }