C # Tautan Situs Web Dokumentasi XML

144

Apakah mungkin untuk memasukkan tautan ke situs web dalam dokumentasi XML? Sebagai contoh, metode saya diringkas sebagai

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

dan ketika saya mengetik

SomeMathThing(

Saya ingin IntelliSense menampilkan ringkasan dengan opsi untuk mengklik "DI SINI" untuk menautkan ke situs web luar. Apakah ini mungkin? Bagaimana itu dilakukan?

john
sumber

Jawaban:

149

Mencoba:

///<Summary>
/// This is a math function I found <see href="http://stackoverflow.com">HERE</see>
///</Summary>
dizzwave
sumber
7
Tidak beruntung aku takut. Itu bahkan tidak menampilkan "DI SINI".
john
5
Hmmm, permintaan maaf saya. Saya melakukan sedikit riset lebih lanjut (lihat di sini dan di sini ) - dan sepertinya VS IDE tidak akan menampilkan hyperlink tersebut, tetapi alat dokumentasi seperti SandCastle akan dapat menampilkannya.
dizzwave
2
Anda dapat membaca tentang Sandcastle di sini btw. "Sandcastle, dibuat oleh Microsoft, adalah alat gratis yang digunakan untuk membuat dokumentasi gaya MSDN dari .NET assemblies dan file komentar XML yang terkait. Ini berbasis baris perintah dan tidak memiliki front-end GUI, fitur manajemen proyek, atau otomatis proses pembangunan. " HTH!
dizzwave
1
Ini tidak didukung oleh Visual Studio, tidak ada Intellisense untuk hrefatribut.
Konard
3
Ini bekerja di VS 16.4.2. Tidak yakin versi apa yang ditambahkan, hanya sekarang Anda dapat mengklik tautan di jendela info metode.
JB06
71

Sedikit terlambat di hype-train, tapi inilah yang saya temukan untuk Visual Studio 2015.

Sampel saya terlihat seperti ini:

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

Hasilnya adalah:

  1. Tip Alat:
    • Memperlihatkan cref-url dengan!:, Tetapi menyembunyikan "ini"
    • Menyembunyikan ahref-url tetapi menampilkan teks
    • Menyembunyikan lihat url dan teks Cuplikan layar intellisense tooltip

  1. Browser objek:
    • Memperlihatkan cref-url dengan!:, Tetapi menyembunyikan "ini" (tidak dapat diklik)
    • Menyembunyikan ahref-url tetapi menampilkan teks (tidak dapat diklik)
    • Menyembunyikan url dan teks lihat (tidak dapat diklik) Cuplikan layar ObjectBrowser

  1. ReSharper (CTRL + SHIFT + F1, Command ReSharper.ReSharper_QuickDoc)
    • Menyembunyikan cref-url dengan!:, Tetapi menampilkan "ini" (tidak dapat diklik)
    • Apakah sekarang mengartikan ahref-url (Versi dari 2016 dan yang lebih baru)
    • Menyembunyikan url dan teks lihat (tidak dapat diklik) Cuplikan layar dari Resharper QuickHelp

Kesimpulan: Yang terbaik, seperti yang ditunjukkan Heiner, adalah

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

Perbarui Seperti yang ditunjukkan Thomas Hagström, Resharper sekarang Mendukung URL a-href yang dapat diklik. Tangkapan layar yang diperbarui.

MHolzmayr
sumber
2
Sebenarnya, dengan ReSharper dan CTRL + SHIFT + F1 url dapat diklik dan tautan HTML kompatibel, jadi itu memang pilihan terbaik
Thomas Hagström
1
Terima kasih Thomas Hagström, memperbarui anwer dan tangkapan layar.
MHolzmayr
26

Anda dapat menggunakan sintaks HTML standar:

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

Teks akan ditampilkan di Visual Studio.

Heiner
sumber
5
Ini adalah pendekatan terbaik. Karena hasilnya masih masuk akal di Visual Studio (hanya menampilkan teks) dan tautan akan bekerja di alat dokumentasi seperti Sandcastle.
Snæbjørn
20

Anda dapat menyertakan awalan!: Di dalam cref agar tidak disentuh dalam dokumentasi Xml yang dihasilkan sehingga alat seperti Dokumen Innovasys! X dan Sandcastle akan menggunakannya. misalnya

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

Intellisense Visual Studio tidak akan menampilkan itu sebagai tautan untuk intellisense - tidak akan banyak gunanya karena tooltip sehingga Anda tidak dapat mengkliknya.

fubaar
sumber
2
Akan ada satu titik jika Object Browser benar-benar membuat<see/> URI situs web yang diklik dan dikenali entah bagaimana (karena Object Browser bukan tooltip). Katakan saja ;-).
binki
6

Gunakan tag. Misalnya saya menggunakan solusi ini dalam proyek saya

Hasilnya ada di sini

Kode xml saya adalah:

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

Atau gunakan tag "lihat". Hasilnya sama dengan 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
sumber