2010-09-28 76 views
20

是從您的DataContract按字母順序創建的xml。我有一個DataContract類定義爲:WCF DataContract DataMember順序?

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

當我做了一個讓我的職務後,返回JSON作爲結果,電子郵件是空的,但如果我張貼我的xml爲:

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

當我做一個GET並將它作爲JSON返回時,電子郵件不再爲空。它爲什麼這樣做?

回答

44

與所述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; } 

Read more here...

+0

太好了!謝謝。這非常有趣。 – Xaisoft 2010-09-28 20:23:05