2015-08-28 27 views
0

我想在使用ASP.NET Web API 2.2 OData V4時定義屬性反序列化的順序。也許已經有一個屬性可以用來定義這個。爲了這封電子郵件的目的,我將它命名爲DeserializationOrderAttribute。我想我應該可以這樣定義一個類:如何在使用ASP.NET Web API 2.2時定義屬性反序列化的順序OData V4

public class Employee 
{ 
    [DeserializationOrder(0)] 
    public Guid EmployeeID { get; set; } 

    [DeserializationOrder(1)] 
    public string FirstName { get; set; } 

    [DeserializationOrder(1)] 
    public string LastName { get; set; } 
} 

在這種情況下,僱員屬性應該名字和姓氏的前反序列化。 FirstName和LastName可以按任何相互順序進行反序列化。

是否存在實現此目標的屬性,還是存在另一種實現財產反序列化順序定義的標準方法?

最好的問候,

亨裏克·達爾

回答

0

您可以將DataMember屬性添加到您的屬性,然後指定Order屬性。

請注意,未使用此屬性裝飾的屬性將始終首先顯示,詳情爲here

+0

其實,這似乎並不奏效。我已將DataContract屬性添加到類和DataMember屬性中,使其具有0或1的順序。但是,反序列化的順序與以前完全相同,並且不遵守DataMember的順序。它看起來像訂單是按字母順序。在我的真實情況下,Employee有一個超類,我還添加了一個DataContract和一個KnownType屬性。它的內容是:「如果數據協定類型是繼承層次結構的一部分,則其基本類型的數據成員總是按順序排列。」不是這種情況。 –

+0

@HenrikDahl你的數據格式是json還是atom? –

相關問題