Как создавать классы C # во время выполнения и обращаться к ним во время выполнения? - PullRequest
0 голосов
/ 20 июня 2019

Пользователь будет предоставлять информацию о схеме во время выполнения, а затем данные, которые следуют за схемой.

Например:

  • спросил имя класса => Персона.
  • запрашивается количество атрибутов => 2.
  • запрашивается атрибут с типами данных => Имя, строка; Возраст, целое число.

Это должно создать класс в C # как:

class Person
{
    string Name;
    int Age;
}

Затем попросил данные - Abc, 25; Защита, 30.

Итак, он создает 2 объекта типа Person.

Класс шаблона уже будет в проекте, атрибуты и данные будут предоставлены во время выполнения, и в течение того же времени выполнения объекты будут созданы из этого класса.

Я попробовал Text Transformation Toolkit (T4) и использовал их шаблоны проектирования, но он получает информацию о схеме во время разработки через доступ к файлу конфигурации xml и создает классы. Затем данные выдаются во время выполнения.

Есть ли способ предоставить даже информацию о схеме во время выполнения?

T4 также имеет шаблоны времени выполнения, но, насколько я понимаю, он генерирует текстовые файлы для использования вне контекста проекта C #, тогда как шаблоны времени разработки могут использоваться для предоставления классов C # для использования в том же проекте. Поправь меня, если я ошибаюсь.

Ответы [ 2 ]

1 голос
/ 20 июня 2019

Существует функциональность для создания объектов динамического класса.Вот ссылка MSDN для того же самого.Также. учебник для понимания создания динамических классов с необходимыми свойствами во время выполнения

0 голосов
/ 20 июня 2019

Насколько я знаю, вы не можете создать экземпляр такого класса, класс должен быть определен.

но вы можете создать динамический класс (безопасность типов исчезла) и назначить свойства, а затем значения.

вы также можете сгенерировать json и деселализовать его до динамического значения, как в этот ответ

...