2016-07-05 237 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。 –