Estou usando o Blazor WASM com .Net 8 e o pacote Kontent.Ai.Delivery e estou tentando integrar o cache ao sistema. Um problema que estou enfrentando é que, depois de armazenar os dados como JSON no cache, não consigo desserializar os dados no objeto porque a classe é gerada com Kontent AI e é um modelo fortemente tipado como este.
public partial class RichTextModulesType
{
public const string Codename = "rich_text_modules_type";
public const string PositionCodename = "position";
public const string DescriptionCodename = "description";
public const string ImageCodename = "image";
public const string ImagePositionCodename = "image_position";
public const string AdditionalTextCodeName = "additional_text";
public IRichTextContent AdditionalText { get; set; }
public IEnumerable<IMultipleChoiceOption> Position { get; set; }
public IRichTextContent Description { get; set; }
public IEnumerable<IAsset> Image { get; set; }
public IEnumerable<IMultipleChoiceOption> ImagePosition { get; set; }
public IContentItemSystemAttributes System { get; set; }
}
Quando tento desserializar os dados, ocorre o erro
Componente de renderização de exceção não tratada: O tipo de coleção 'Kontent.Ai.Delivery.Abstractions.IRichTextContent' é abstrato, uma interface ou é somente leitura e não pôde ser instanciado e preenchido.
É assim que os dados foram recuperados antes de serializar e colocar no cache
var response = await DeliveryClient.GetItemsAsync<PageType>(
new MyParams("...")
);
if (response.Items.Count() > 0)
{
PageInfo = response.Items.FirstOrDefault<PageType>();
string responseBody = JsonSerializer.Serialize(PageInfo, new JsonSerializerOptions
{
ReferenceHandler = System.Text.Json.Serialization.ReferenceHandler.IgnoreCycles,
MaxDepth = 128
});
await CacheStorageAccessor.StoreAsync(new HttpRequestMessage(HttpMethod.Get, cacheKey), new HttpResponseMessage
{
Content = new StringContent(responseBody)
}, 3600);
}
Quais são minhas opções aqui?