Заказ WCF DataContract DataMember? - PullRequest
       0

Заказ WCF DataContract DataMember?

19 голосов
/ 28 сентября 2010

Это xml, созданный из вашего DataContract, созданного в алфавитном порядке. У меня есть класс 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; }

}

Когда я сделал следующее сообщение:

<User>
   <FirstName>abc</FirstName>
   <LastName>123</LastName>
   <Email>email@email.com</Email>
   <Password>pass</Password>
</User>

Когда я делал GET после своего сообщения и возвращал результат в формате JSON, адрес электронной почты был нулевым, но если я отправил свой xml как:

 <User>
   <Email>email@email.com</Email>
   <FirstName>abc</FirstName>
   <LastName>123</LastName>
   <Password>pass</Password>
 </User>

Электронная почта больше не равна нулю, когда я выполняю GET и возвращаю ее как JSON. Почему он это делает?

1 Ответ

46 голосов
/ 29 сентября 2010

украшают его параметром Order в классе DataMemberAttribute:

[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; }

Подробнее здесь ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...