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.