Link para site de documentação em C # XML


144

É possível incluir um link para um site na documentação XML? Por exemplo, meu método está resumido em

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

e quando eu digito

SomeMathThing(

Quero que o IntelliSense mostre o resumo com a opção de clicar em "AQUI" para criar um link para um site externo. Isso é possível? Como isso seria feito?

Respostas:


149

Experimentar:

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

7
Sem sorte, estou com medo. Nem exibiu "AQUI".
— Joao

5
Hmmm, minhas desculpas. Pesquisei um pouco mais (veja aqui e aqui ) - e parece que o VS IDE não exibirá esses hiperlinks, mas uma ferramenta de documentação como o SandCastle seria capaz de exibi-los.
— dizzwave

2
Você pode ler sobre Sandcastle aqui . "O Sandcastle, criado pela Microsoft, é uma ferramenta gratuita usada para criar documentação no estilo MSDN a partir de assemblies .NET e seus arquivos de comentários XML associados. É baseada em linha de comando e não possui front-end da GUI, recursos de gerenciamento de projeto ou um mecanismo automatizado. processo de construção ". HTH!
— dizzwave

1
Isso não é suportado pelo Visual Studio, não há Intellisense para hrefatributo.
— Konard 14/08/19

3
Isso funciona no VS 16.4.2. Não sei qual versão foi adicionada, mas agora você pode clicar nos links na janela de informações do método.
— JB06

71

Um pouco tarde no hype-train, mas aqui está o que eu descobri para o Visual Studio 2015.

Minha amostra é assim:

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

Os resultados são:

  1. Sugestão:
    • Mostra cref-url com!:, Mas oculta "this"
    • Oculta ahref-url mas mostra texto
    • Oculta URL e texto de referência Captura de tela da dica de ferramenta intellisense

  1. Navegador de Objetos:
    • Mostra cref-url com!:, Mas oculta "this" (não clicável)
    • Oculta ahref-url, mas mostra o texto (não clicável)
    • Oculta URL e texto de referência (não clicável) Captura de tela do ObjectBrowser

  1. ReSharper (CTRL + SHIFT + F1, comando ReSharper.ReSharper_QuickDoc)
    • Oculta o cref-url com!:, Mas mostra "this" (não clicável)
    • Agora interpreta ahref-url (versão de 2016 e mais recente)
    • Oculta URL e texto de referência (não clicável) Tela capturada de Resharper QuickHelp

Conclusão: O melhor, como Heiner apontou, seria

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

Atualização Como Thomas Hagström apontou, o Resharper agora suporta URLs a-href clicáveis. Captura de tela atualizada de acordo.


2
Na verdade, com ReSharper e CTRL + SHIFT + F1 um url é clicável e link HTML é compatível, de modo que é realmente a melhor opção
— Thomas Hagstrom

1
Obrigado Thomas Hagström, atualizou a resposta e a captura de tela.
— MHolzmayr 01/06

26

Você pode usar a sintaxe HTML padrão:

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

O texto será exibido no Visual Studio.


5
Essa é a melhor abordagem. Como a saída ainda fará sentido no Visual Studio (apenas mostra o texto) e o link funcionará em ferramentas de documentação como o Sandcastle.
— Snæbjørn 27/08/2015

20

Você pode incluir um prefixo!: Em um cref para que ele passe intocado na documentação XML gerada, para que ferramentas como o Innovasys Document! X e Sandcastle o usarão. por exemplo

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

O intellisense do Visual Studio não exibirá isso como um link para o intellisense - não faria muito sentido, pois é uma dica de ferramenta, portanto você não pode clicar nela de qualquer maneira.


2
Haveria um ponto se o Pesquisador de objetos realmente tornasse<see/> URIs de sites clicáveis e reconhecidos de alguma forma (já que o Pesquisador de objetos não é uma dica de ferramenta). Apenas dizendo' ;-).
— binki

6

Use uma etiqueta. Por exemplo, eu usei esta solução no meu projeto

O resultado está aqui

Meu código xml é:

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

Ou use a tag "ver". O resultado é o mesmo da tag "a"

/// <summary>
/// This is C# XML Documentation Website Link
/// <see href="/programming/6960426/c-sharp-xml-documentation-website-link">See more</see>
/// </summary>
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.