Получение диаграммы классов по исходному коду
Есть мысли копать в сторону Reflection API, либо в сторону регулярных выражений, либо на крайняк в сторону конечных автоматов. А что посоветуете Вы? Или может есть какие статьи?
Имеется в виду исходный код C#?
Дело в том, что регулярные выражения предназначены для разбора регулярной грамматики. Исходный код C#, как и большинства языков программирования, не является регулярной грамматикой. Поэтому одними регулярками не обойтись (хотя отдельные части кода ими выкусывать можно).
Да, рефлексию использовать можно. Сперва компилируем исходник родным компилятором шарпа, используя класс CSharpCodeProvider, а затем исследуем полученную сборку рефлексией.
P.S. если задача не срочная, то можно подождать выхода компилятора Roslyn :). При этом станет доступна функция compiler as a service, то есть можно будет легко получать и обрабатывать AST кода. Майкрософт обещала Розлин уже в VS2012, но "не шмогла". Ждём-с в следующем релизе (годика два-три, да).
Есть вопрос по рефлекции. Например.
Assembly loadedAssembly = Assembly.ReflectionOnlyLoadFrom( path );
Как сделать так, чтобы не прерывая работы программы можно было загрузить другую сборку?