C#XML文档网站链接


144

是否可以在XML文档中包含指向网站的链接?例如,我的方法总结为

///<Summary>
/// This is a math function I found HERE.
///</Summary>
public void SomeMathThing(Double[] doubleArray)
{
   ...
}

当我键入

SomeMathThing(

我希望IntelliSense显示摘要,并提供选项以单击“ HERE”链接到外部网站。这可能吗?怎么做?

Answers:


149

尝试:

///<Summary>
/// This is a math function I found <see href="http://stackoverflow.com">HERE</see>
///</Summary>

7
恐怕没有运气。它甚至没有显示“ HERE”。
约翰

5
嗯,我很抱歉。我做了一些进一步的研究(请参阅此处此处)-看起来VS IDE不会显示那些超链接,但是诸如SandCastle之类的文档工具将能够显示它们。
dizzwave 2011年

2
你可以在这里阅读有关沙堡的更多信息。“由Microsoft创建的Sandcastle是一个免费工具,用于从.NET程序集及其关联的XML注释文件创建MSDN样式的文档。它是基于命令行的,没有GUI前端,项目管理功能或自动化的构建过程。” HTH!
dizzwave 2011年

1
Visual Studio不支持此功能,href属性不支持Intellisense 。
Konard

3
这在VS 16.4.2中有效。不确定添加了哪个版本,只是现在您可以单击方法信息窗口中的链接。
JB06

71

炒作有点晚,但这是我在Visual Studio 2015中发现的内容。

我的样本如下所示:

    /// <summary>
    ///     Retrieves information about the specified window. 
    ///     The function also retrieves the value at a specified offset into the extra window memory.
    ///     From <see cref="!:https://msdn.microsoft.com/en-us/library/windows/desktop/ms633585(v=vs.85).aspx">this</see> MSDN-Link.
    ///     AHref <a href="http://stackoverflow.com">here</a>.
    ///     see-href <see href="http://stackoverflow.com">here</see>.
    /// </summary>
    /// <param name="hwnd"></param>
    /// <param name="index"></param>
    /// <returns>
    ///     Testlink in return: <a href="http://stackoverflow.com">here</a>
    /// </returns>
    public static IntPtr GetWindowLongPtr(IntPtr hwnd, int index)
    {
        return IntPtr.Size == 4 ? GetWindowLongPtr32(hwnd, index) : GetWindowLongPtr64(hwnd, index);
    }

结果是:

  1. 工具提示:
    • 显示带有!:的cref-url,但隐藏“ this”
    • 隐藏ahref-url但显示文本
    • 隐藏Seehref网址和文本 智能感知工具提示的屏幕截图

  1. 对象浏览器:
    • 显示带有!:的cref-url,但隐藏“ this”(不可点击)
    • 隐藏ahref-url但显示文本(不可点击)
    • 隐藏Seehref网址和文本(不可点击) 屏幕截图

  1. ReSharper(CTRL + SHIFT + F1,Command ReSharper.ReSharper_QuickDoc)
    • 用!:隐藏cref-url,但显示“ this”(不可点击)
    • 现在可以解释ahref-url(2016年及以后的版本)
    • 隐藏Seehref网址和文本(不可点击) Resharper QuickHelp屏幕截图

结论:正如海纳指出的那样,最好的办法是

See <a href="link">this link</a> for more information.

更新 正如ThomasHagström指出的那样,Resharper现在支持可单击的a-href URL。相应地更新了屏幕截图。


2
实际上,使用ReSharper和CTRL + SHIFT + F1可以单击URL,并且HTML链接兼容,因此,这的确是最佳选择
ThomasHagström2016年

1
感谢ThomasHagström,更新了答案和屏幕截图。
MHolzmayr '16

26

您可以使用标准的HTML语法:

<a href="http://stackoverflow.com">here</a>

文本将显示在Visual Studio中。


5
这是最好的方法。由于输出在Visual Studio中仍然有意义(仅显示文本),因此该链接将在Sandcastle之类的文档工具中起作用。
Snæbjørn

20

您可以在cref中包含!:前缀,以使其在生成的Xml文档中保持不变,从而使诸如Innovasys Document之类的工具X和Sandcastle将使用它。例如

/// <summary>
/// This is a math function I found <see cref="!:http://stackoverflow.com">HERE</see>
/// </summary>

但是,Visual Studio智能感知不会将其显示为智能感知的链接-没什么意义,因为它是一个工具提示,因此您无论如何都无法单击它。


2
如果对象浏览器实际上<see/> 以某种方式使可单击识别的网站URI出现一点(因为对象浏览器不是工具提示)。只是在说' ;-)。
binki 2014年

6

使用标签。例如,我在项目中使用了此解决方案

结果在这里

我的xml代码是:

/// <summary>
/// This is C# XML Documentation Website Link
/// <a href="/programming/6960426/c-sharp-xml-documentation-website-link">See more</a>
/// </summary>

或使用“ see”标签。结果与“ a”标签相同

/// <summary>
/// This is C# XML Documentation Website Link
/// <see href="/programming/6960426/c-sharp-xml-documentation-website-link">See more</see>
/// </summary>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.