2010-09-28 14 views
20

Czy plik XML utworzony z DataContract został utworzony w kolejności alfabetycznej. Mam klasy DataContract zdefiniowany jako:WCF DataContract DataMember order?

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

} 

Kiedy zrobiłem następujące POST:

<User> 
    <FirstName>abc</FirstName> 
    <LastName>123</LastName> 
    <Email>[email protected]</Email> 
    <Password>pass</Password> 
</User> 

Kiedy zrobiłem GET po moim poście i zwrócony wynik jako JSON, e-mail był pusty, ale jeśli I POST mój xml jako:

<User> 
    <Email>[email protected]</Email> 
    <FirstName>abc</FirstName> 
    <LastName>123</LastName> 
    <Password>pass</Password> 
</User> 

E-mail nie jest już pusty, gdy wykonuję GET i zwracam go jako JSON. Dlaczego to robi?

Odpowiedz

44

ozdobić go z zamówienia parametru w klasie DataMemberAttribute:

[DataMember(Order = index)] 

Reflektor w serializatora umieszcza go w porządku alfabetycznym. Chyba kiedy urządzone tak:

[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...

+0

Great! Dzięki. To było bardzo interesujące. – Xaisoft

Powiązane problemy