Как обозначить список, который может впоследствии изменить свой тип?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как обозначить список, который может впоследствии изменить свой тип?

Сообщение Anonymous »

При настройке средства чтения JSON у меня есть класс get-set в качестве основы для десериализации объектов в списки. Однако я столкнулся с проблемой: мне нужен один список, чтобы иметь возможность изменить его тип. Например:

Код: Выделить всё

public class SomewhereInAJsonSubLevel
{
public string name { get; set; }
public int num { get; set; }
public string method { get; set; }
public List content { get; set; }
}
Список имеет пользовательские типы и может варьироваться в зависимости от этого уровня. Проще говоря, это может быть либо INT, STRING или CUSTOM_CLASS. Очевидно, что каждый из них имеет разный макет списка.
Поскольку это JSON, мой опыт показывает, что тип списка задан как конкретный тип выше.
Теоретически , тип будет относиться к методу, поэтому возникает вопрос:
есть ли способ сохранить указанную выше структуру get-set, но при этом иметь способ выполнить «if имя метода X, то содержимое List или, если тип метода – Y, List content"
Изменить: Чтобы прояснить ситуацию, я не делаю JSON Reader, я использую JSON от NewtonSoft для сериализации/десериализации. Этот пример класса будет расположен где-то на несколько уровней глубже.
Я мог бы сделать одинаковые настройки для каждого отдельного типа списка, но это означало бы копирование всех уровней выше, просто чтобы изменить один из них. обозначения глубиной 5 или 6 слоев, поскольку тогда каждый слой придется менять для конкретного класса. Это много дублированного кода, которого я хочу избежать.
Поэтому я думаю, что то, что я искал, но не смог найти слова, - это своего рода полиморфизм, для один конкретный элемент, который будет изменять свой List в этом конкретном классе get-set.

Подробнее здесь: https://stackoverflow.com/questions/792 ... type-later
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как обозначить фасад запроса переменной в Laravel?
    Anonymous » » в форуме Php
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Как обозначить фасад запроса переменной в Laravel?
    Anonymous » » в форуме Php
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Как обозначить трассировки стека libart.so или libc.so в Crashlytics Android NDK?
    Anonymous » » в форуме Android
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Как обозначить компонент Blazor как абстрактный, используя только файл .razor?
    Anonymous » » в форуме C#
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Как обозначить компонент Blazor как абстрактный, используя только файл .razor?
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»