2016-07-05 169 views
1

我正在使用API​​ mehod,它返回類型爲Product的響應,下面是響應類結構。映射響應對象(C#)

Public class Product  
{  
     public int Id;  
     public string Name;  
     public IList<Product> MasterProduct { get; set; }  
} 

API結果包括產品屬性和IList。由於這個API不能通過我們的Windows客戶端直接使用,所以我們有一個使用這個API的封裝Web API,因爲在本地API中我們定義了類似的Product類。我面臨的問題是當試圖將外部API的映射與本地映射。以下是我想要做的。

response = Response.Result.Select(x => new Product  
{  
Id=x.Id,  
Name=x.Name  
MasterProduct = x.MasterProduct.Cast<MasterProduct>().ToList()//tried below 
}).ToList(); 

但它失敗,錯誤的 - 無法投型「Api.Models.Product」的對象鍵入「App.DataContracts.Product」

的Masterproduct包括分層數據。我想知道的如果我採取的方法是正確的,或者必須通過某種方法來完成。任何建議或幫助,將不勝感激。

在搜索網頁時,我遇到了一些代碼,其中serpare方法被調用使用Microsoft.Its.Data解析,但這是單個對象,在我的情況下,我有一個List(Hierarchical)。

欣賞是否有人可以指向一些linke/sampel實現相同。

回答

0

嘗試序列化/反序列化會做。下面是代碼 也許嘗試序列化/反序列化會做。

if (response.Result != null)  
{  

var serializedResponse = JsonConvert.SerializeObject(Response.Result, Formatting.Indented);  
response = JsonConvert.DeserializeObject<List<Product>>(serializedResponse);  

}).ToList();  
return response; 
+0

通過繼承已經達到了同樣的效果,也在上面工作tx。 –