0

我正在使用带有.Net SDK的Kentico Cloud构建一个站点,该站点提供使用Lucene.Net存储索引项的搜索功能。

我想在搜索实现中从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)); 

我宁愿使用内置方法来获取强类型模型,也不愿使用在添加新内容类型时需要更新的开关(ToObject 方法)。

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

4

1 回答 1

1

使用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方法 示例内容项响应示例

于 2019-02-26T14:50:17.153 回答