2011-08-05 33 views
84

是否可以在XML文檔中包含指向網站的鏈接?例如,我的方法的總結C#XML文檔網站鏈接

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

,當我鍵入

SomeMathThing(

我想智能感知,以示與選項總結的「HERE」點擊鏈接到外部網站。這可能嗎?它將如何完成?

回答

82

嘗試:

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

沒有運氣我很害怕。它甚至沒有顯示「這裏」。 – john

+4

嗯,我的歉意。我做了一些更多的研究(見[這裏](http://social.msdn.microsoft.com/Forums/en-US/devdocs/thread/8af32a12-bebe-447b-9111-dbe5d970810d)和[here](http ://social.msdn.microsoft.com/Forums/en/csharpide/thread/82d85250-e5ac-48f2-a787-2ca441904c2c)) - 它看起來像VS IDE不會顯示這些超鏈接,但一個文檔工具如SandCastle將能夠顯示它們。 – dizzwave

+1

你可以閱讀關於Sandcastle [here](http://elegantcode.com/2008/04/01/inline-xml-code-documentation-using-sandcastle/)btw。 「由微軟創建的Sandcastle是一個免費工具,用於從.NET程序集及其關聯的XML註釋文件創建MSDN樣式的文檔。它基於命令行,沒有GUI前端,項目管理功能或自動化建立過程「。 HTH! – dizzwave

17

可以包括:前綴在CREF把它傳遞後保持不變生成的XML文檔中,這樣的工具,如Innovasys Document! X和沙堡將使用它。例如

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

Visual Studio的智能感知將不顯示,就好像一個鏈接,智能感知 - 不會有太大的點,因爲它是一個提示,所以你不能按一下也無妨。

+2

如果[對象瀏覽器實際上使''可點擊的](http://stackoverflow.com/q/20517119/429091)*和*以某種方式識別網站URI(因爲對象瀏覽器不是工具提示),那會有一點意義。只是在說' ;-)。 – binki

10

您可以使用標準的HTML語法:

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

的文本將顯示在Visual Studio。

+0

這是最好的方法。由於輸出在Visual Studio中仍然有意義(它只顯示文本),並且鏈接將在像Sandcastle這樣的文檔工具中起作用。 –

44

末的炒作火車了一點,但這裏是我發現的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-U RL與!,但隱藏 「這個」
    • 隱藏AHREF-url,但示出了文本
    • 隱藏seehref URL和文本 Screenshot of intellisense tooltip

  • 對象瀏覽器:
    • 顯示CREF-網址:,卻隱藏着 「本」(不要點擊能)
    • 隱藏AHREF-url,但示出了文本(未點擊)
    • 隱藏seehref URL和文本(未點擊) Screenshot of ObjectBrowser

  • ReSharper(CTRL + SHIFT + F1,Command ReSharper。ReSharper_QuickDoc)
    • 隱藏CREF-網址:,但顯示 「此」(不可點擊)
    • 是否現在2016年和更新)
    • 隱藏seehref網址和文字(不解釋AHREF-URL(版本點擊) Screenshot of Resharper QuickHelp
  • 結論:最好的一個,作爲海納指出,將

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

    更新 正如ThomasHagström指出的那樣,Resharper現在支持可點擊的a-href網址。相應地更新了截圖

    +1

    實際上,使用ReSharper和CTRL + SHIFT + F1,URL是可點擊的,並且HTML鏈接是兼容的,所以這確實是最好的選擇 –

    +1

    感謝ThomasHagström,更新了anwer和截圖。 – MHolzmayr