Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
 Аватар для skilllab
296 / 236 / 58
Регистрация: 03.02.2011
Сообщений: 2,049
Записей в блоге: 1
.NET 4.x

Компиляция типов в рантайме

31.10.2022, 09:31. Показов 611. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Возможна ли?

К примеру.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var myClass = @"class MySuperType 
        {
            string MyField { get; set; }
 
            public MySuperType(string mf)
            {
                MyField = mf;
            }
        }";
 
 
 
MySuperType myType = GenerateMyType(myClass);
 
myType.MyField = "Юхууу";
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.10.2022, 09:31
Ответы с готовыми решениями:

Динамическая компиляция (компиляция программы в программе)
Привет форумчане, встретился с такой проблемой,мне в курсовой работе сказали сделать чтобы с textBox программа считывала введённый текст,...

Создание контролов в рантайме
Блин поиск по форумам глюкает, наверное такой вопрос уже был :(, но тем не менее: Создание контролов в рантайме, назначение на них...

Создание элементов в рантайме
Возможно ли, допустим, при нажатии на кнопку создать (не показать visible), а именно создать новый label и разместить его на форме?

2
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
31.10.2022, 10:09
Можно, но взаимодействовать с такими типами можно только через рефлексию, либо при наследовании от какого-то интерфейса, который изначально был в коде.
2
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,768
31.10.2022, 14:17
Конкретно такой пример нет, не возможен.

На этапе компиляции тип не известен ведь, а значит не известны и его члены, а значит на 15-ю строку компилятор выдаст ошибку.

Т.е. для получения нужного эффекта ваш генерируемый класс нужно унаследовать от какого-нибудь базового класса или интерфейса и после создания экземпляра привести к нему.

Ещё можете посмотреть в сторону изначального построения не самого текста класса, а его дерева, с последующей компиляцией в рантайме через 'SyntaxFactory' и 'CSharpCompilation' из 'Microsoft.CodeAnalysis.CSharp' (в т.ч. оно может и C#-код класса сгенерировать по собранному дереву).
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.10.2022, 14:17
Помогаю со студенческими работами здесь

Присваивание событий в рантайме
Имеется ToolStripMenuItem. Из него в рантайме нужно создать ToolStripButton. В том числе и событие Click. С созданием проблем не...

Перемещение фреймов в рантайме
Кто работал с фреймами - есть ли возможность в рантайме перемещать фреймы по форме и изменять их размеры? Добавлено через 56 минут ...

Изменить значение аттрибута в рантайме
Добрый вечер. Сабж. А ещё лучше добавить аттрибут к свойству класса. И возможно ли?

Изменение размера Panel в рантайме
Здравствуйте уважаемые форумчане!!! Подскажите как реализовать изменение размера Panel-ки за правый край, перемещение и прилипание к форме...

Не получается в рантайме 'подлючить' Grid
Добрый вечер, использую Janus GridEx2000 дял отображения данных из хранимой процедуры не получается в рантайме ему 'подсунуть'...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru