C# 如何控制WCF[WebGet]标记方法返回的xml中的标记顺序
我的WCF服务方法:C# 如何控制WCF[WebGet]标记方法返回的xml中的标记顺序,c#,xml,wcf,C#,Xml,Wcf,我的WCF服务方法: [OperationContract] [WebGet(ResponseFormat = WebMessageFormat.Xml, UriTemplate = "decl/xml?s={s}")] public Paradigm GetDeclensionXml(string s) { return GetDeclension (s); } 返回具有一组字符串字段的自定义对象: public class Paradigm { public string
[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类中定义的顺序出现。有什么办法可以做到这一点吗
另外,如果我将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;
}
辉煌的。正是我想要的。谢谢