Приведите ContentItem к типу строго - PullRequest
0 голосов
/ 26 февраля 2019

Я создаю сайт с использованием Kentico Cloud с .Net SDK , обеспечивающим функциональность поиска с использованием 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 и будет удален.

1 Ответ

0 голосов
/ 26 февраля 2019

Использовать метод ContentItem.CastTo<object>() (или DeliveryItemResponse.CastTo<object>() / DeliveryItemListingResponse.CastTo<object>()) с object в качестве универсальных.

Пример с ContentItem.CastTo() method

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

...