一方面,MSDN说:
XML 文档注释不是元数据;它们不包含在编译的程序集中...
但另一方面,Intellisense 在 Visual Studio 中为 .net 类等显示它们(例如,如果您将鼠标悬停在Int32
.)
为避免误解:我指的是这些:
/// <summary>
/// These comments.
/// </summary>
void example()
{
//Not these.
}
一方面,MSDN说:
XML 文档注释不是元数据;它们不包含在编译的程序集中...
但另一方面,Intellisense 在 Visual Studio 中为 .net 类等显示它们(例如,如果您将鼠标悬停在Int32
.)
为避免误解:我指的是这些:
/// <summary>
/// These comments.
/// </summary>
void example()
{
//Not these.
}
XML 文档文件与程序集的 DLL 是分开的。它们只是 UTF8 XML 文件。如果它们碰巧与它们记录的 DLL 位于同一文件夹中,则 Visual Studio 将选择它们。
编译时,构建过程会自动将 XML 文件复制到构建输出文件夹(如果存在)。
XML 文档的任何内容都不会被放入任何 DLL 中。
如果您查看框架 DLL 文件(例如在“C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0”中),您会在它们旁边看到大量的“.xml”文件。
当您将代码编译为 IL 时,不会删除这些内容。...将您的代码编译为 DLL 或 exe,然后使用工具 ILDasm 打开它。您会注意到您的评论不包括在内。然后,您可以使用 Reflector 之类的工具反编译您的代码,然后再次看到您的评论消失了。ILDasm 和 Reflector 通常是您应该熟悉的好工具。