14

Visual Studio 项目可以选择创建XML 文档文件。我知道如果您想运行像 Sandcastle 或 NDoc 之类的程序来创建 MSDN 样式的 API 文档,那么 XML 文档文件会很有用。美好的。我不在乎那个。

根据此链接:http: //msdn.microsoft.com/en-us/library/s0we08bk.aspx

将 /doc 开关添加到 Visual Basic、C# 或 C++ 编译器命令行时,会生成一个 .xml 文件,用作 IntelliSense 文档的基础。

所以这让我觉得 Intellisense 注释可以从这些生成的 XML 文件中出现。

但是我创建了一个小测试应用程序,我在其中调用了一个完全不同的项目中的方法,并且 XML 注释出现在我的 Intellisense 中——而且我什至没有保存 MediaHelper 类!因此,在这种情况下,很明显没有 Intellisense 使用的 .xml 文件。

来自未保存班级的评论

鉴于这一切,Intellisense 从哪里得到它的垃圾?谢谢!

4

2 回答 2

21

当源代码在现有解决方案(或者甚至更好,同一个项目)中时,Visual Studio 不需要查找 XML 文件 - 它知道文档注释在哪里,所以它会使用它们。(就像 Intellisense 知道你在另一个文件中声明的成员一样,即使你还没有真正重建。)

如果要在同一解决方案中添加对 DLL 的引用而不是项目引用,则需要创建 XML 文件。例如,我为 NodaTime.xml 提供了 Noda Time 包,这样即使您没有源代码,您仍然可以在 Intellisense 中看到注释。

于 2013-01-25T21:56:02.807 回答
5

Intellisense 从它的 XML 注释中得到它。

例如,假设我有一堂课:

///<summary>
/// This is an example class
///</summary>
static class Foo
{
    //members
}

事实上,你可以走得更深。例如,一个方法:

///<summary>
///Returns the object to string, uppercased.
///</summary>
///<param name="o">The object to be transformed.</param>
///<returns>The string.</returns>
public string someMethod(object o)
{
   return o.ToString().ToUpper();
}
于 2013-01-25T21:58:47.420 回答