C # время создания класса - PullRequest
       36

C # время создания класса

2 голосов
/ 05 февраля 2011

Я новичок в C # и слышал, что можно создавать классы во время выполнения. Это правда? Если это правда, можете ли вы дать мне простой пример, как это сделать? Я хочу создать класс из файла конфигурации во время выполнения, чтобы использовать его в качестве SelectedObject в элементе управления PropertyGrid.

Спасибо за помощь!

Ответы [ 4 ]

3 голосов
/ 05 февраля 2011

Вы можете, с TypeBuilder - но это не тривиальные вещи; по сути, вы пишете вещи низкого уровня, такие как IL, во время выполнения. Я делаю это время от времени, но я немного сумасшедший. Два могут быть связаны.

Для того, что вы хотите (PropertyGrid), более простой вариант - предоставить свойства времени выполнения через PropertyDescriptor; У меня есть несколько таких примеров «пакетов свойств» здесь на stackoverflow. Вот один из таких примеров: .Net Property Grid. Есть ли способ позволить Grid манипулировать объектом по-другому

Но даже это работа по сравнению с простейшим вариантом: используйте DataTable; Добавьте нужные столбцы и одну строку и передайте двойник строки из DefaultView таблицы в PropertyGrid.

1 голос
/ 05 февраля 2011

Что вы действительно хотите сделать, это отобразить произвольные данные в PropertyGrid.Вам не нужно создавать новый класс для этого.Вы можете просто использовать собственный дескриптор типа.

Проверьте this out.

0 голосов
/ 05 февраля 2011

Я думаю, что вы ищете динамическое генерирование исходного кода , которое позволяет вам создавать классы и т.д. во время выполнения. Ссылка включает образцы.

0 голосов
/ 05 февраля 2011

Вы можете сделать это, используя класс TypeBuilder . В связанной документации MSDN есть пример.

...