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?

Juan
fuente

Respuestas:

149

Tratar:

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

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

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

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