Есть ли API в .net для чтения файла документации XML-комментариев

В этом question я вижу, что microsoft отправляет файлы документации XML для BCL. Интересно, знает ли кто-нибудь, есть ли API внутри .net, который можно использовать для просмотра во время выполнения. Я знаю, что мы можем анализировать файлы вручную с помощью XML api.

Вариант использования заключается в том, что мы разрешаем использование пользовательских (считываемых сторонних) типов/сборок в нашей системе, и при выборе их в пользовательском интерфейсе мы хотели бы извлечь документацию, указанную в пользовательском типе/сборке создатель или если они недоступны, предоставляют другие значения по умолчанию.

Ответы

Ответ 1

Я поддерживаю проект Jolt.NET на CodePlex и реализовал функцию, которая выполняет эту самую задачу. Подробнее читайте в Jolt.

По сути, библиотека позволяет вам программно находить и запрашивать файл комментариев doc XML для сборки, используя типы метаданных в System.Reflection (т.е. MethodInfo, PropertyInfo и т.д.).

Ответ 2

Microsoft Sandcastle - это инструмент для извлечения документации из сборок с помощью файлов комментариев XML или без них. Он был выпущен как открытый источник. Вы можете попробовать взглянуть на код этого инструмента.

Ответ 3

Подумайте об этом.

Комментарии XML никогда не являются частью сборки. Таким образом, сторонняя сборка, о которой вы говорите, не будет иметь никакой информации для вас, чтобы вы могли получать комментарии.

Теперь, если эти сборки могут генерировать XML файлы, содержащие эту документацию, возможно, используя SandCastle или nDoc, вы можете прочитать эти XML файлы, как вы этого хотите.

Следующий вопрос - если у вас есть эти файлы XML doc, как их разобрать и прочитать.

  • Я бы предложил использовать Linq to XML для быстрого и простого способа загрузки этой документации. Это лучше во многих отношениях, чем обработка XSLT, которую делает SandCastle. Использование Linq для XML для этого не должно длиться так долго, пока вы понимаете XML-схему/иерархию документа XML doc.

Сообщите мне, как это происходит ИЛИ если у вас есть какие-либо вопросы