2

以下は私のasmx Webサービスです

 [WebService(Namespace = "http://test.com/test")]
 [SoapDocumentService(RoutingStyle = SoapServiceRoutingStyle.RequestElement)]
 public class Pilot : System.Web.Services.WebService
 {
    [WebMethod]
    public Attribute[] IsPilotUser(Data Data)
    {
          //logic here
    }

 }

[Serializable()]
public class Data
{
    public string HumanNo
    {
        get;
        set;
    }
}


[Serializable()]
[System.Xml.Serialization.XmlRoot("Attribute")]
public class Attribute
{

    [System.Xml.Serialization.XmlElement(Namespace="http://test.com/test")]
      public string Name = "UserResult";

   [System.Xml.Serialization.XmlElement(Namespace="http://test.com/test")]
    public string value
    {
       get;
       set;
    }

    [System.Xml.Serialization.XmlNamespaceDeclarations]
    public System.Xml.Serialization.XmlSerializerNamespaces xmlns = new   System.Xml.Serialization.XmlSerializerNamespaces();

    public Attribute()
    {
        xmlns.Add("pf", "http://test.com/test");
        xmlns.Add("pf", "http://test.com/test");
    }

}

これは、クライアントが消費しようとすると生成される現在の SOAP 応答メッセージです。

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <IsPilotUserResponse xmlns="http://test.com/test">
      <IsPilotUserResult>
        <pf:Attribute xmlns:pf="http://test.com/test">
          <pf:Name>UserResult</pf:Name>
          <pf:value>i am value</pf:value>
        </pf:Attribute>
      </IsPilotUserResult>
    </IsPilotUserResponse>
  </soap:Body>
</soap:Envelope>

上の 2 つの要素に接頭辞「pf:」がないことに気付いた場合

<IsPFMPilotUserResponse xmlns="http://test.com/test">
    <IsPFMPilotUserResult>

このプレフィックスを追加する方法はありますか?

4

0 に答える 0