Link al sito Web della documentazione XML C #


144

È possibile includere un collegamento a un sito Web nella documentazione XML? Ad esempio, il mio metodo è riassunto come

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

e quando scrivo

SomeMathThing(

Voglio che IntelliSense mostri il riepilogo con l'opzione di fare clic su "QUI" per collegarsi a un sito Web esterno. È possibile? Come sarebbe fatto?

Risposte:


149

Provare:

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

7
Nessuna fortuna ho paura. Non ha nemmeno visualizzato "QUI".
Giovanni,

5
Hmmm, mi scuso. Ho fatto un po 'più di ricerca (vedi qui e qui ) - e sembra che VS IDE non mostrerà quei collegamenti ipertestuali, ma uno strumento di documentazione come SandCastle sarebbe in grado di visualizzarli.
dizzwave,

2
Qui puoi leggere di Sandcastle qui . "Sandcastle, creato da Microsoft, è uno strumento gratuito utilizzato per la creazione di documentazione in stile MSDN dagli assembly .NET e dai file di commento XML associati. È basato sulla riga di comando e non ha front-end GUI, funzionalità di gestione dei progetti o automatizzato processo di compilazione ". HTH!
dizzwave,

1
Nota, c'è una certa variabilità nel supporto per <see /> come tag di contenuto. L'ho trovato un po 'più coerente quando usato come tag autochiuso che mostra solo l'URL non elaborato. (Che è comunque una migliore documentazione: dato che "QUI" non fornisce molto in termini di spiegazione.)
Gremlin,

3
Funziona con VS 16.4.2. Non sono sicuro di quale versione sia stata aggiunta, solo che ora puoi fare clic sui collegamenti nella finestra delle informazioni sul metodo.
JB06

71

Un po 'in ritardo sull'hype-train, ma ecco cosa ho scoperto per Visual Studio 2015.

Il mio campione è simile al seguente:

    /// <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);
    }

I risultati sono:

  1. tooltip:
    • Mostra cref-url con!:, Ma nasconde "questo"
    • Nasconde ahref-url ma mostra del testo
    • Nasconde l'URL e il testo di Seehref Schermata della descrizione del comando intellisense

  1. Browser degli oggetti:
    • Mostra cref-url con!:, Ma nasconde "this" (non cliccabile)
    • Nasconde ahref-url ma mostra il testo (non cliccabile)
    • Nasconde URL e testo seehref (non selezionabili) Schermata di ObjectBrowser

  1. ReSharper (CTRL + MAIUSC + F1, comando ReSharper.ReSharper_QuickDoc)
    • Nasconde cref-url con!:, Ma mostra "this" (non cliccabile)
    • Ora interpreta ahref-url (versione dal 2016 e successive)
    • Nasconde URL e testo seehref (non selezionabili) Schermata di Resharper QuickHelp

Conclusione: la migliore, come ha sottolineato Heiner, sarebbe

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

Aggiornamento Come sottolineato da Thomas Hagström, Resharper ora supporta URL a-href cliccabili. Schermata aggiornata di conseguenza.


2
In realtà, con ReSharper e CTRL + MAIUSC + F1 è possibile fare clic su un URL e il collegamento HTML è compatibile, quindi questa è davvero l'opzione migliore
Thomas Hagström,

1
Grazie Thomas Hagström, aggiornato anwer e screenshot.
MHolzmayr,

26

È possibile utilizzare la sintassi HTML standard:

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

Il testo verrà visualizzato in Visual Studio.


5
Questo è l'approccio migliore. Poiché l'output avrà ancora senso in Visual Studio (mostra solo il testo) e il collegamento funzionerà in strumenti di documentazione come Sandcastle.
Snæbjørn,

20

È possibile includere un prefisso!: In un cref per farlo passare inalterato nella documentazione Xml generata in modo che strumenti come Documento Innovasys! X e Sandcastle lo useranno. per esempio

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

Visual Studio intellisense non lo visualizzerà come collegamento per intellisense, ma non sarebbe molto utile in quanto è una descrizione comandi, quindi non è possibile fare clic su di esso.


2
Ci sarebbe un motivo se Object Browser rendesse effettivamente gli<see/> URI dei siti Web cliccabili e riconosciuti (poiché Object Browser non è una descrizione comandi). Sto solo dicendo ;-).
binki,

6

Usa un tag. Ad esempio ho usato questa soluzione nel mio progetto

Il risultato è qui

Il mio codice xml è:

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

Oppure usa il tag "vedi". Il risultato è lo stesso del tag "a"

/// <summary>
/// This is C# XML Documentation Website Link
/// <see href="/programming/6960426/c-sharp-xml-documentation-website-link">See more</see>
/// </summary>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.