Чтобы сделать это хорошо, вам действительно нужно нечто, содержащее полный синтаксический анализатор C ++.
Можно использовать наш набор инструментов для реинжиниринга программного обеспечения DMS с C ++ Front End за это.Он может предоставлять как точные объявления сущностей, включая типы, так и их контекст (класс / пространство имен / ...) и точные позиции файлов.DMS обеспечивает доступ ко всей этой информации в виде набора AST и связанных таблиц символов;Вы создаете пользовательский код для перехода к / брать то, что вы хотите.
В зависимости от ваших потребностей, вы можете обнаружить, что нужную информацию сложно обработать с использованием vanilla C #.Информация о типах во всей своей красе довольно сложна, потому что C ++ - сложный язык.Если вы хотите обработать эту информацию, вам нужно «оставаться внутри» DMS, где присутствует весь механизм, который это делает.Если вам нужны только имена и информация о типе в виде текстовых строк, вы можете заставить DMS красиво распечатать эти данные в этой форме;у него есть стандартные библиотеки, поддерживающие такие действия.Промежуточным ответом будет экспорт данных в формате XML;DMS обеспечивает прямую поддержку экспорта произвольных фрагментов AST, но только косвенную поддержку для записи информации о типах в виде XML, но это не составит труда настроить.
РЕДАКТИРОВАТЬ: (в ответ на комментарий OP в другом ответе) DMSможет предоставить точную информацию как о сигнатуре метода, так и о теле метода.Он имеет полный AST и тип информации для обоих.