Chr*_*yva 14 c# xml intellisense visual-studio
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从哪里获得它的垃圾?谢谢!
Jon*_*eet 21
当源代码在现有解决方案(甚至更好,同一个项目)中时,Visual Studio不需要查找XML文件 - 它知道文档注释的位置,因此它将使用它们.(就像Intellisense知道你在另一个文件中声明了哪些成员,即使你还没有真正重建过.)
如果要在同一解决方案中添加对DLL的引用而不是项目引用,则需要创建XML文件.因此,例如,我使用Noda Time包提供NodaTime.xml,因此即使您没有源代码,您仍然可以在Intellisense中看到注释.
Intellisense从其XML注释中获取它。
例如,假设我有一个课程:
///<summary>
/// This is an example class
///</summary>
static class Foo
{
//members
}
Run Code Online (Sandbox Code Playgroud)
实际上,您可以比这更深入。例如,一种方法:
///<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();
}
Run Code Online (Sandbox Code Playgroud)