3 / 3 / 0
Регистрация: 22.12.2010
Сообщений: 29
|
|
1 | |
.NET 4.x Получение диаграммы классов по исходному коду17.01.2013, 19:43. Показов 4517. Ответов 3
Метки нет (Все метки)
Доброго времени суток. Есть задача - обработать введенный пользователем на форме код, получить диаграмму классов со всеми полями, методами, константами. Т.е. на входе некоторый текст кода, а на выходе некая структура, в которой сохранена диаграмма описанных классов.
Есть мысли копать в сторону Reflection API, либо в сторону регулярных выражений, либо на крайняк в сторону конечных автоматов. А что посоветуете Вы? Или может есть какие статьи?
0
|
17.01.2013, 19:43 | |
Ответы с готовыми решениями:
3
Построить диаграмму классов по исходному коду Построение диаграммы классов по коду Программа построения диаграммы классов UML по коду Вопрос по исходному коду |
18.01.2013, 11:55 | 3 |
NRefactory - https://github.com/icsharpcode/NRefactory
0
|
3 / 3 / 0
Регистрация: 22.12.2010
Сообщений: 29
|
|||||||||||||||||||||||||||||||
05.02.2013, 18:51 [ТС] | 4 | ||||||||||||||||||||||||||||||
Спасибо за советы.
Решил задачу так: 1) Откомпилировал исходный код при помощи CSharpCodeProvider.
2) Далее полученную сборку можно разобрать при помощи Рефлектора. Рефлектор может кушать сам файл dll, а может кушать массив байтов, в который мы побайтно счиатем этот файл(я так и сделал, чтобы избавится от проблем захвата файла, увы, красивого решения тут не нашел( ).
Есть один момент, например, если один класс был объявлен внутри другого класса, то в сборки они будут находится на одном уровне, пример.
Далее из членов можно получать различные вещи, например
Вот так в кратце, если вопрос заинтересует, то советую почитать книгу Герберт Шилдт - C# 4.0. Полное руководство. Там на 541 странице начинается рассказ о рефлексии. Могу прислать исходный код с пояснениями, если кому-то будет нужно.
1
|
05.02.2013, 18:51 | |
05.02.2013, 18:51 | |
Помогаю со студенческими работами здесь
4
Разделение по строкам и исходному коду Блок схема по исходному коду Составить программу VB по исходному коду Создать форму по исходному коду Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |