Enlace del sitio web de documentación XML de C #


144

¿Es posible incluir un enlace a un sitio web en la documentación XML? Por ejemplo, mi método se resume como

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

y cuando escribo

SomeMathThing(

Quiero que IntelliSense muestre el resumen con la opción de hacer clic en "AQUÍ" para vincular a un sitio web externo. es posible? ¿Cómo se haría?

Respuestas:


149

Tratar:

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

77
No tengo suerte, me temo. Ni siquiera mostraba "AQUÍ".
— juan

55
Hmmm, mis disculpas. Investigué un poco más (ver aquí y aquí ), y parece que VS IDE no mostrará esos hipervínculos, pero una herramienta de documentación como SandCastle podría mostrarlos.
— dizzwave

2
Puedes leer sobre Sandcastle aquí por cierto. "Sandcastle, creado por Microsoft, es una herramienta gratuita utilizada para crear documentación de estilo MSDN a partir de ensamblados .NET y sus archivos de comentarios XML asociados. Se basa en la línea de comandos y no tiene interfaz gráfica de usuario, funciones de administración de proyectos o un sistema automatizado proceso de construcción ". HTH!
— dizzwave

1
Visual Studio no lo admite, no hay Intellisense para el hrefatributo.
— Konard

3
Esto funciona en VS 16.4.2. No estoy seguro de qué versión se agregó, solo que ahora puede hacer clic en los enlaces en la ventana de información del método.
— JB06

71

Un poco tarde en el hype-train, pero esto es lo que descubrí para Visual Studio 2015.

Mi muestra se ve así:

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

Los resultados son:

  1. Información sobre herramientas:
    • Muestra cref-url con!:, Pero oculta "this"
    • Oculta ahref-url pero muestra texto
    • Oculta la URL y el texto de seehref Captura de pantalla de la información sobre herramientas de Intellisense

  1. Navegador de objetos:
    • Muestra cref-url con!:, Pero oculta "this" (no se puede hacer clic)
    • Oculta ahref-url pero muestra texto (no se puede hacer clic)
    • Oculta la URL y el texto de seehref (no se puede hacer clic) Captura de pantalla de ObjectBrowser

  1. ReSharper (CTRL + MAYÚS + F1, Comando ReSharper.ReSharper_QuickDoc)
    • Oculta cref-url con!:, Pero muestra "this" (no se puede hacer clic)
    • Ahora interpreta ahref-url (versión de 2016 y más reciente)
    • Oculta la URL y el texto de seehref (no se puede hacer clic) Captura de pantalla de Resharper QuickHelp

Conclusión: la mejor, como señaló Heiner, sería

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

Actualización Como señaló Thomas Hagström, Resharper ahora admite URL a-href clicables. Captura de pantalla actualizada en consecuencia.


2
En realidad, con ReSharper y CTRL + SHIFT + F1 se puede hacer clic en una url y el enlace HTML es compatible, por lo que esa es la mejor opción
— Thomas Hagström

1
Gracias Thomas Hagström, actualizó la respuesta y la captura de pantalla.
— MHolzmayr

26

Puede usar la sintaxis HTML estándar:

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

El texto se mostrará en Visual Studio.


55
Este es el mejor enfoque. Como la salida aún tendrá sentido en Visual Studio (solo muestra el texto) y el enlace funcionará en herramientas de documentación como Sandcastle.
— Snæbjørn

20

Puede incluir un prefijo!: En un cref para que pase sin tocar en la documentación Xml generada para que herramientas como el documento Innovasys! X y Sandcastle lo usarán. p.ej

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

Sin embargo, Visual Studio intellisense no lo mostrará como un enlace para intellisense; no sería muy útil ya que es una información sobre herramientas, por lo que no puede hacer clic en él de todos modos.


2
Habría un punto si Object Browser realmente hiciera<see/> URI de sitios web clicables y reconocidos de alguna manera (ya que Object Browser no es una información sobre herramientas). Sólo digo' ;-).
— binki

6

Usa una etiqueta. Por ejemplo, usé esta solución en mi proyecto

El resultado está aquí.

Mi código xml es:

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

O use la etiqueta "ver". El resultado es el mismo de la etiqueta "a"

/// <summary>
/// This is C# XML Documentation Website Link
/// <see href="/programming/6960426/c-sharp-xml-documentation-website-link">See more</see>
/// </summary>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.