Ответ 1
Я однажды испортил это некоторое время назад и использовал это решение для парней. Работала неплохо:
Можно ли получить сводку класса во время выполнения на С#? Я хотел бы получить резюме класса через отражение, а затем записать его на консоль. По сводке классов я имею в виду итоговые комментарии перед определением класса, что-то вроде этого:
/// <summary>
/// some description
/// </summary>
class SomeClass
{
}
Я не знаю, доступны ли эти комментарии после компиляции кода, но если они, возможно, есть способ получить их в коде.
Заранее благодарим за помощь.
Я однажды испортил это некоторое время назад и использовал это решение для парней. Работала неплохо:
Я поддерживаю проект Jolt.NET на CodePlex и реализовал функцию, которая выполняет эту самую задачу. Подробнее читайте в Jolt.
По сути, библиотека позволяет вам программно находить и запрашивать файл комментариев doc XML для сборки, используя типы метаданных в System.Reflection
(т.е. MethodInfo
, PropertyInfo
и т.д.).
Нет, они не доступны через отражение. См. msdn:
Комментарии XML doc не являются метаданными; они не включены в скомпилированные сборки, и поэтому они не доступный через отражение.
Вы не можете получить доступ к ним во время выполнения, поскольку они считаются комментариями компилятора.
Однако, если вы хотите использовать атрибут для указания информации и доступа к ней во время выполнения через отражение, вы можете это сделать.
См. Создание настраиваемых атрибутов (Руководство по программированию на С#) для создания атрибутов и Доступ к атрибутам с рефлексией (Руководство по программированию на С#) для доступа во время выполнения.
Пример из MSDN:
Author.cs:
public class Author : System.Attribute
{
private string name;
public double version;
public Author(string name)
{
this.name = name;
version = 1.0;
}
}
SampleClass.cs:
[Author("H. Ackerman", version = 1.1)]
class SampleClass
{
// H. Ackerman code goes here...
}
Вы можете, если испустить файл документации XML. Этот процесс предполагает использование рефлексии для получения всех публичных членов типа, а затем с использованием XPath, чтения документации из сгенерированного XML-документа.
UPDATE: включить XML-документ в вашу dll/exe, просто добавьте его как внедренный ресурс и дважды скомпилируйте, если документация изменится.
Нет, эти комментарии не включены в сборку сборки.
Visual Studio может создать XML файл в выходной папке (\ bin\your_project.xml), содержащей эти комментарии. Если ваше приложение было распространено с этим файлом xml, вы сможете получить доступ к нему программно.