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 回答