0

如何将 SOAP 标头访问到一个类中。场景:SOAP 请求从客户端发送到 Web 服务。

[SoapHeader("transactionInfo", Direction = SoapHeaderDirection.In)]
public byte[] method1(DocumentInfo templateInfo,System.Xml.XmlDocument xml,string Name)
{"code to get the tags in soap header"}
4

2 回答 2

1

如果您的代码工作正常,您会发现在您的类transactionInfo中定义了一个名为的字段。WebService该字段将包含反序列化形式的 SOAP 标头。

我从来没有这样做过,但我怀疑如果该transactionInfo字段是 type XmlElement,那么您将能够以 XML 的形式访问它。否则,您将能够将其作为 C# 对象进行访问。

于 2012-12-04T08:49:51.967 回答
0

1 - 定义您的自定义 SoapHeader

  public class transactionInfo: System.Web.Services.Protocols.SoapHeader
  {
    public string  Info;
  }

2 - 在您的网络服务中定义您的标头

[WebService(Namespace = "http://..")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
 public class MyWebService : System.Web.Services.WebService
{
    public transactionInfo Header  { get; set; }
    ...

3 - 在您的 Web 服务中定义一个使用此 SoapHeader 的方法

  [SoapHeader("transactionInfo", Direction = SoapHeaderDirection.InOut)]
    public void MyMethod()
    {
    }

[这是您问题的答案]
4 - 使用属性从方法 MyMethod 访问标头的值

  if (Header.Info == "none")...
于 2012-12-04T09:20:36.143 回答