1

我需要从传入消息中提取一个soap Header 属性到我的服务。我正在使用服务堆栈并且一直在环顾四周,但在任何地方都找不到好的答案。谁能告诉我如何从请求对象中检索 SOAP 标头属性?

这是我的服务

public class NotificationServices : Service
{
    public GetAccountNotificationResponse Any (GetAccountNotification request)
    {
         //Do Some stuff Here!!!
         //Need to retrieve some header here
    }
}

任何帮助将不胜感激。如果您知道无法完成的事实,请也告诉我。

谢谢

4

1 回答 1

1

在最新版本的ServiceStack v3.9.49 中,您可以使用IHttpRequest.GetSoapMessage()扩展方法访问请求 SOAP 消息(用于 SOAP 请求),例如:

public class NotificationServices : Service
{
    public GetAccountNotificationResponse Any (GetAccountNotification request)
    {
         //Do Some stuff Here!!!
         var requestSoapMessage = base.Request.GetSoapMessage();
    }
}

序列化/反序列化维基

IHttpRequest.GetSoapMessage()使用扩展方法在服务中使用 SOAP 端点访问时,您可以访问原始 WCF 消息,例如:

Message requestMsg = base.Request.GetSoapMessage();

要告诉 ServiceStack 完全跳过反序列化 SOAP 请求,请将IRequiresSoapMessage接口添加到您的请求 DTO,例如:

public class RawWcfMessage : IRequiresSoapMessage {
    public Message Message { get; set; }
}

public object Post(RawWcfMessage request) { 
    request.Message... //Raw WCF SOAP Message
}
于 2013-06-10T06:49:43.813 回答