将ContentItem转换为强类型

时间:2019-02-26 14:50:17

标签: .net lucene.net kentico-cloud

我正在使用Kentico Cloud.Net SDK构建站点,并使用Lucene.Net提供搜索功能来存储索引项。

我想在搜索实现中从strongly typed model创建DeliveryClient.ContentItem

我已经实现了这样的

var result = await client.GetItemAsync("home");
var item = result.Item; // ContentItem
// ToObject is my own implementation that does the conversion
return item?.ToObject(CustomTypeProvider.GetType(item?.system?.type)); 

我宁愿使用内置方法来获取强类型模型,而不是每次添加新的内容类型(To ToObject方法)时都必须使用需要更新的开关。

  

此问题是从官方Kentico Cloud论坛迁移而来的,将被删除。

1 个答案:

答案 0 :(得分:0)

使用ContentItem.CastTo<object>()作为泛型的DeliveryItemResponse.CastTo<object>()方法(或DeliveryItemListingResponse.CastTo<object>() / object)方法。

使用ContentItem.CastTo()方法的示例

var result = await client.GetItemAsync("home");
var item = result.Item; // ContentItem
return item?.CastTo<object>() // Automatically converts to the desired strongly content type

使用ContentItemResponse.CastTo方法的示例 ContentItemResponse example