0

私のWCFサービスメソッド:

[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Xml, UriTemplate = "decl/xml?s={s}")]
public Paradigm GetDeclensionXml(string s)
{
    return GetDeclension (s);
}

一連の文字列フィールドを持つカスタム オブジェクトを返します。

public class Paradigm
{
    public string genitive;
    public string dative;
    public string accusative;
    public string instrumental;
    public string prepositional;
}

この XML にシリアル化されます。

<Paradigm xmlns="http://schemas.datacontract.org/2004/07/MorpherWebDemo20.ws" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <accusative>росу</accusative>
    <dative>росе</dative>
    <genitive>росы</genitive>
    <instrumental>росой</instrumental>
    <prepositional>росе</prepositional>
</Paradigm>

つまり、タグは自動的に名前順に並べられます。カスタム クラスで定義されている順序で表示されるようにします。それを達成する方法はありますか?

PS ResponseFormat を JSON に変更すると、同じことが起こります。

4

1 に答える 1

1

[DataContract]クラスをで、メンバーを で装飾できます。この属性[DataMember]のプロパティを使用して、必要なことを行うことができます。Order

[DataContract]
public class Paradigm
{
    [DataMember(Order = 1)]
    public string genitive;
    [DataMember(Order = 2)]
    public string dative;
    [DataMember(Order = 3)]
    public string accusative;
    [DataMember(Order = 4)]
    public string instrumental;
    [DataMember(Order = 5)]
    public string prepositional;
}
于 2013-08-13T18:42:39.093 に答える