繁体   English   中英

如何控制WCF [WebGet]标记方法返回的xml中的标记顺序

[英]How to control the tag order in the xml returned by a WCF [WebGet] marked method

我的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>

即,标签是按名称自动排序的。 我希望它们按照在custon类中定义的顺序出现。 有什么想法要实现吗?

PS如果将ResponseFormat更改为JSON,也会发生同样的情况。

您可以使用[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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM