编写并生成XML文档注释
上篇文章介绍了 XML 文档注释的标记,这次演示一个例子,然后用 C# 编译器 csc.exe 生成 XML 文档注释的文件。
首先定义一个 Hello 类,其中包含一个构造函数和两个 ToString 方法,不管是类型还是成员,都加上了XML文档注释,内容如下:
Hello
上面的代码使用了许多XML文档注释标记,其中大部分都是微软“建议的文档注释标记”,例如,<summary>、<see>、<remarks> 等,我也遵守了标准的使用方法;也有一些非建议的标记,例如,<threadsafety>、<overloads>,这些标记都被NDoc和/或Sandcastle所支持,所以也是有用的。
下面要做的事情,就是使用编译器csc.exe生成XML文件,使用方法如下:
csc.exe /doc:Hello.xml /t:library Hello.cs
回车后,csc 除了生成程序集之外,还会生成一个 Hello.xml 文件,该文件以XML的格式存储刚才编写的文档注释。csc 还会验证一些标记,以保证引用的类型或者成员是存在的,或者是没有歧义的,否则会出现警告。
如果使用 Visual Studio 则更加简单,只需要在项目属性窗口中指定文件名就可以了,每次生成时都会自动生成文档注释文件。
最终生成的文件内容如下:
XML文档注释
我们从文件中能发现这样几个特征:
- 文档描述了程序集和成员,分别用<assembly>标记和<members>标记表示。
- 针对每个类型和成员的文档注释,都被放在了相应的<member>标记中。
- 类型和类型成员都变成了完全限定名,并且都有一个前缀,类型使用“T”作为前缀,而成员使用“M”。结果 Hello 类变成了“T:Netatomy.Learning.Helo”,Hello.ToString(string) 则变成了“M:Netatomy.Learning.Hello.ToString(System.String)”。
- 构造函数的名称变成了“#ctor”。
- 除了上面的变化之外,输入的文档注释几乎原封不动地存到了文件中。
有了文档注释文件,我们接下来就可以使用 NDoc 或者 Sandcastle 这样的工具,生成 chm 帮助文档,或者 MS Help 2 格式的帮助文档,从而为我们的项目提供一个专业的 API 参考文档。
参考文档:
天行健,君子以自强不息。