Я боролся с этим в течение нескольких часов, и я не могу найти решение. Используя JSON.NET, я пытаюсь десериализовать некоторые данные в тот или иной производный класс, НО я хочу настроить таргетинг на правильный производный класс на основе поля, которое на самом деле находится в этих данных...
Вот упрощенный пример:
public class BaseFile {
public string Name{get;set;}
}
public class Directory : BaseFile {
public int FileSize {get;set;}
}
public class Video : BaseFile {
public int Duration{get;set}
}
Я получаю эти данные в формате JSON:
{
"files": [
{
"content_type": "application/x-directory",
"size": 566686478
},
{
"content_type": "video/x-matroska",
"duration": 50
}
}
Теперь я хочу использовать JSON.NET на основе поля content_type
для создания экземпляра объекта Directory
(если content_type
равно application/x-directory
) или объекта Video
(если content_type
равно video/x-matroska
).
Простое решение состоит в том, чтобы десериализовать весь контент в базовый класс, а затем преобразовать его в соответствующие производные классы, но я не нахожу это эффективным, поэтому мне интересно, есть ли другое решение!
Заранее благодарим вас за ваш вклад (ы).