WCF DataContract DataMember order?
Is the xml that is created from your DataContract created in开发者_开发百科 alphabetical order. I have a DataContract class defined as:
[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; }
}
When I did the following POST:
<User>
<FirstName>abc</FirstName>
<LastName>123</LastName>
<Email>email@email.com</Email>
<Password>pass</Password>
</User>
When I did a GET after my post and returned the result as JSON, email was null, but if I POST my xml as:
<User>
<Email>email@email.com</Email>
<FirstName>abc</FirstName>
<LastName>123</LastName>
<Password>pass</Password>
</User>
Email is no longer null when I do a GET and return it as JSON. Why is it doing this?
decorate it with the Order Parameter in the DataMemberAttribute class:
[DataMember(Order = index)]
The reflector in the serializer puts it alphabetically. Unless when decorated like this:
[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...
精彩评论