将ContentItem强制转换为强类型

问题描述 投票:0回答:1

我正在使用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云论坛迁移的,将被删除。

.net lucene.net kentico-cloud
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方法ContentItemResponse example的示例

© www.soinside.com 2019 - 2024. All rights reserved.