1

この XML SOAP 形式を取得するメッセージ コントラクトを定義するにはどうすればよいですか?

スキーマ:

    <List>
      <Exclusions>
        <ExclusionID>123</ExclusionID>
        <ExclusionID>656</ExclusionID>
      </Exclusions>
      </List>

以下のようにクラスファイルを作成しましたが、応答が異なります

<DataContract> _
Public Class List


    ''' <remarks/>
    Private _exclusions As Exclusions

    <DataMember()> _
    Public Property Exclusions() As Exclusions
        Get
            Return _exclusions
        End Get
        Set(ByVal value As Exclusions)
            _exclusions = value
        End Set
    End Property

End Class

<DataContract>
Public Class Exclusions

    <DataMember>
    Public ExclusionID As ExclusionID()

End Class

<MessageContract>
Public Class ExclusionID

    <MessageBodyMember(Name:="")>
   Public Value As String

End Class

私の応答は次のとおりです。

    <List >
      <Exclusions >
        <ExclusionID>
          <ExclusionID>
            <Value>123</Value>
          </ExclusionID>
          <ExclusionID>
            <Value>145</Value>
          </ExclusionID>
        </ExclusionID>
      </Exclusions>
    </List>

メッセージ コントラクトを使用して適切なメッセージを取得するにはどうすればよいですか?

4

1 に答える 1

0

VS に VB.net がインストールされていません。以下の C# コードを参照してください。

//クラス定義

public class List {

    [MessageBodyMember]
    public Exclusions Exclusions { get; set; }
}

[CollectionDataContract(Name="Exclusions", ItemName="Exclusion")]
public class Exclusions : List<String> {

}

//help method
static void WriteMessage(Message message, String filePath) {
    using (var writer = new XmlTextWriter(filePath, Encoding.UTF8)) {
        message.WriteMessage(writer);
    }
}

//code
var myList = new List();
myList.Exclusions = new Exclusions();
myList.Exclusions.Add("123");
myList.Exclusions.Add("656");

using (var message = Message.CreateMessage(MessageVersion.Soap12WSAddressing10,
    "http://127.0.0.1:3333/someaction", myList)) {

    WriteMessage(message, "a.xml");
}
于 2014-04-04T12:09:33.650 に答える