2016-04-14 63 views
2

我有一個典型的響應C#的Web API返回對象列表

ResultModel 
{ 
    Bool Result, 
    Object Response 
} 

我想送例如類別的產品

var response = new List<Category> 
{ 
    new Category {Name = "1", Products = new List<Product> {new Product {Name = "1_1"}, new Product {Name = "1_2"}} }, 
    new Category {Name = "2", Products = new List<Product> {new Product {Name = "2_1"}, new Product {Name = "2_2"}} }, 
    new Category {Name = "3", Products = new List<Product>() }, 
} 

我的回答

return new ResultModel 
     { 
      Response = response, 
      Result = true 
     }; 

但我無法收到產品屬性作爲迴應。 有人知道爲什麼嗎? 謝謝

+0

請添加你所得到 – acostela

+0

沒有任何錯誤的錯誤。我只收到Result = true,以及3個類別,包含名稱,但沒有產品 – Badfishmaan

+0

當然,我在類別和產品中有更多屬性。例如,我只展示其中的一些。但他們都是簡單的(INT,字符串) – Badfishmaan

回答

2

您只獲取屬性名稱,因爲它是一種基本類型,串行器知道如何序列化和反序列化它。如果你想獲得更復雜的對象,你必須確保序列化器知道如何去做。

你可以實現這個在你的對象中實現Iserializable接口,當你確信你可以序列化它後,你可以在你的webApi中使用它。

https://msdn.microsoft.com/en-us/library/system.runtime.serialization.iserializable(v=vs.110).aspx

在這裏,你有一個SO線程這個Using Serializable attribute on Model in WebAPI

+0

謝謝,它的工作原理 – Badfishmaan