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?

John
fonte

Respostas:

149

Experimentar:

///<Summary>
/// This is a math function I found <see href="http://stackoverflow.com">HERE</see>
///</Summary>
dizzwave
fonte
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.

MHolzmayr
fonte
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.

Heiner
fonte
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.

fubaar
fonte
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>
Ramil Aliyev
fonte