是从DataContract按字母顺序创建的xml。我有一个DataContract类定义为:

[DataContract(Name = "User", Namespace = "")]
public class User
{
    [DataMember]
    public string FirstName { get; set; }
    [DataMember]
    public string LastName { get; set; }
    [DataMember]
    public string Email { get; set; }
    [DataMember]
    public string Password { get; set; }

}

当我执行以下POST时:
<User>
   <FirstName>abc</FirstName>
   <LastName>123</LastName>
   <Email>[email protected]</Email>
   <Password>pass</Password>
</User>

当我在发布后执行GET并将结果作为JSON返回时,电子邮件为null,但是如果我以以下方式发布xml:
 <User>
   <Email>[email protected]</Email>
   <FirstName>abc</FirstName>
   <LastName>123</LastName>
   <Password>pass</Password>
 </User>

当我执行GET并将其作为JSON返回时,电子邮件不再为null。为什么这样做呢?

最佳答案

用DataMemberAttribute类中的 Order 参数修饰它:

[DataMember(Order = index)]

序列化器中的反射器按字母顺序放置。
除非这样装饰:
[DataMember(Order = 0)]
public string FirstName { get; set; }
[DataMember(Order = 1)]
public string LastName { get; set; }
[DataMember(Order = 2)]
public string Email { get; set; }
[DataMember(Order = 3)]
public string Password { get; set; }

Read more here...

关于c# - WCF DataContract DataMember订单?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3816478/

10-12 07:39