Посилання на веб-сайт документації C # XML


144

Чи можливо включити посилання на веб-сайт у документацію XML? Наприклад, мій метод узагальнений як

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

і коли я набираю

SomeMathThing(

Я хочу, щоб IntelliSense показав резюме з можливістю натиснути "ТУТ" для посилання на зовнішній веб-сайт. Чи можливо це? Як би це було зроблено?

Відповіді:


149

Спробуйте:

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

7
Я не боюся. Він навіть не відображав "ТУТ".
Джон

5
Хммм, вибачення. Я провів трохи більше досліджень (див. Тут і тут ) - і схоже, що VS IDE не відображатиме ці гіперпосилання, але інструмент документації, такий як SandCastle, зможе їх відобразити.
dizzwave

2
Про Sandcastle ви можете прочитати тут, btw. "Sandcastle, створений корпорацією Майкрософт, - це безкоштовний інструмент, який використовується для створення документації в стилі MSDN з збірок .NET і пов'язаних з ними файлів коментарів XML. Він заснований на командному рядку і не має переднього інтерфейсу, функцій управління проектами або автоматизованого. процес побудови ". HTH!
запаморочення

1
Зауважте, існує деяка мінливість підтримки <see /> як тегу вмісту. Я вважаю це трохи більш послідовним, коли використовується як самозакритий тег, просто відображаючи необроблену URL-адресу. (Що краще за будь-яку документацію: так як "ТУТ" не дає багато способів пояснення.)
gremlin

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 за допомогою !:, але приховує "це"
    • Сховає ahref-url, але показує текст
    • Приховує URL-адресу та текст Seehref Знімок екрана підказки intellisense

  1. Оглядач об’єктів:
    • Показує cref-url за допомогою !:, але приховує "це" (не можна натискати)
    • Сховає ahref-url, але показує текст (не можна натискати)
    • Приховує URL-адресу та текст Seehref (не можна натискати) Знімок екрана ObjectBrowser

  1. ReSharper (CTRL + SHIFT + F1, Command ReSharper.ReSharper_QuickDoc)
    • Сховає cref-url з !:, але показує "це" (не можна натискати)
    • Чи інтерпретує зараз ahref-url (версія від 2016 року та новіші)
    • Приховує URL-адресу та текст Seehref (не можна натискати) Знімок екрана Resharper QuickHelp

Висновок: Найкращим, як зазначив Гейнер, був би

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

Оновлення Як зазначив Томас Хагстрьом, Resharper тепер підтримує URL-адреси a-href, які можна натискати. Оновлено відповідний знімок екрана.


2
Насправді, з ReSharper та CTRL + SHIFT + F1 URL-адресу можна натискати, а HTML-посилання сумісне, тож це справді найкращий варіант
Thomas Hagström

1
Дякую Томасу Хагстрьому, оновив передвідник та скріншот.
MHolzmayr

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 intellisense не відображатиме це як посилання на intellisense - це не буде великою точністю, оскільки це підказка, тому ви не можете натиснути його все одно.


2
Буде сенс, якщо браузер об’єктів насправді зробив <see/>кліки та розпізнавав URI веб-сайтів (оскільки браузер об’єктів не є підказкою). Просто говорю' ;-).
бінкі

6

Використовуйте тег. Наприклад, я використав це рішення у своєму проекті

Результат тут

Мій xml код:

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

Або скористайтеся тегом "див". Результат - це тег "a"

/// <summary>
/// This is C# XML Documentation Website Link
/// <see href="/programming/6960426/c-sharp-xml-documentation-website-link">See more</see>
/// </summary>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.