Visual Studio Intellisense的评论来自哪里?

时间:2013-01-25 21:52:59

标签: c# xml visual-studio intellisense

Visual Studio项目可以选择创建 XML文档文件。 据我所知,如果您想运行Sandcastle或NDoc等程序或创建MSDN样式API文档,XML文档文件会非常有用。精细。我不在乎。

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

  

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

因此,我认为智能感知评论可以出现在这些生成的XML文件中。

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

Comment from Un-Saved Class

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

2 个答案:

答案 0 :(得分:21)

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

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

答案 1 :(得分: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();
}