2010-09-28 24 views
20

Es el xml que se crea a partir de su DataContract creado en orden alfabético. Tengo una clase DataContract definido como:Datos de WCF DataContract ¿Orden del miembro?

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

} 

cuando hice el siguiente post:

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

Cuando hice un GET después de mi entrada y devuelve el resultado como JSON, correo electrónico era nula, pero si Puedo publicar mi xml:

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

correo electrónico ya no es nula cuando hago un GET y devolverlo como JSON. ¿Por qué está haciendo esto?

Respuesta

44

decorar con la Orden de de parámetros en la clase DataMemberAttribute:

[DataMember(Order = index)] 

El reflector en el serializador pone en orden alfabético. A menos que cuando decorado como este:

[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

Gran! Gracias. Esto fue muy interesante. – Xaisoft

Cuestiones relacionadas