ServiceStack Soap检索Soap报头

本文关键字:Soap 报头 检索 ServiceStack | 更新日期: 2023-09-27 18:17:32

我需要从到我的服务的传入消息中提取soap Header属性。我正在使用服务堆栈,一直在寻找,找不到一个好的答案。谁能告诉我如何从请求对象检索SOAP头属性?

这是我的服务

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

任何帮助将不胜感激。如果你知道这是不可能的,也请告诉我。

谢谢

ServiceStack Soap检索Soap报头

在最新版本的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();
    }
}

来自序列化/反序列化wiki:

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

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
}