Liên kết trang web tài liệu XML C #


144

Có thể bao gồm một liên kết đến một trang web trong tài liệu XML không? Ví dụ: phương pháp của tôi được tóm tắt là

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

và khi tôi gõ

SomeMathThing(

Tôi muốn IntelliSense hiển thị tóm tắt với tùy chọn nhấp vào "TẠI ĐÂY" để liên kết đến một trang web bên ngoài. Điều này có thể không? Làm thế nào nó sẽ được thực hiện?

Câu trả lời:


149

Thử:

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

7
Không có may mắn tôi sợ. Nó thậm chí không hiển thị "TẠI ĐÂY".
john

5
Hmmm, lời xin lỗi của tôi. Tôi đã nghiên cứu thêm một chút (xem tại đâyđây ) - và có vẻ như VS IDE sẽ không hiển thị các siêu liên kết đó, nhưng một công cụ tài liệu như SandCastle sẽ có thể hiển thị chúng.
dizzwave

2
Bạn có thể đọc về Sand Castle ở đây btw. "Sandcastle, được tạo bởi Microsoft, là một công cụ miễn phí được sử dụng để tạo tài liệu kiểu MSDN từ các cụm .NET và các tệp nhận xét XML liên quan của họ. Nó dựa trên dòng lệnh và không có giao diện người dùng GUI, tính năng quản lý dự án hoặc tự động xây dựng quy trình. " HTH!
dizzwave

1
Điều này không được Visual Studio hỗ trợ, không có Intellisense cho hrefthuộc tính.
Konard

3
Điều này hoạt động trong VS 16.4.2. Không chắc chắn phiên bản nào đã được thêm vào, chỉ có điều bây giờ bạn có thể nhấp vào liên kết trong cửa sổ thông tin phương thức.
JB06

71

Một chút muộn trên tàu cường điệu, nhưng đây là những gì tôi tìm ra cho Visual Studio 2015.

Mẫu của tôi trông như thế này:

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

Kết quả là:

  1. Chú giải công cụ:
    • Hiển thị cref-url với!:, Nhưng ẩn "này"
    • Ẩn ahref-url nhưng hiển thị văn bản
    • Ẩn url và văn bản Ảnh chụp màn hình của tooltip intellisense

  1. Trình duyệt đối tượng:
    • Hiển thị cref-url với!:, Nhưng ẩn "này" (không thể nhấp)
    • Ẩn ahref-url nhưng hiển thị văn bản (không thể nhấp)
    • Ẩn url và văn bản seehref (không thể nhấp) Ảnh chụp màn hình của ObjectBrowser

  1. ReSharper (CTRL + SHIFT + F1, Lệnh ReSharper.ReSharper_QuickDoc)
    • Ẩn cref-url với!:, Nhưng hiển thị "này" (không thể nhấp)
    • Hiện tại có giải thích ahref-url (Phiên bản từ năm 2016 trở lên)
    • Ẩn url và văn bản seehref (không thể nhấp) Ảnh chụp màn hình của Resharper QuickHelp

Kết luận: Điều tốt nhất, như Heiner đã chỉ ra, sẽ là

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

Cập nhật Như Thomas Hagström đã chỉ ra, Resharper hiện Hỗ trợ các URL-href có thể nhấp. Cập nhật ảnh chụp màn hình cho phù hợp.


2
Trên thực tế, với ReSharper và CTRL + SHIFT + F1, một url có thể nhấp và liên kết HTML tương thích, vì vậy đó thực sự là lựa chọn tốt nhất
Thomas Hagström

1
Cảm ơn Thomas Hagström, đã cập nhật anwer và ảnh chụp màn hình.
MHolzmayr

26

Bạn có thể sử dụng cú pháp HTML tiêu chuẩn:

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

Văn bản sẽ được hiển thị trong Visual Studio.


5
Đây là cách tiếp cận tốt nhất. Vì đầu ra vẫn sẽ có ý nghĩa trong Visual Studio (nó chỉ hiển thị văn bản) và liên kết sẽ hoạt động trong các công cụ tài liệu như Sandcastle.
Snæbjørn

20

Bạn có thể bao gồm tiền tố a !: Trong một cref để nó được chuyển qua chưa được xử lý trong tài liệu Xml được tạo để các công cụ như Tài liệu đổi mới! X và Sandcastle sẽ sử dụng nó. ví dụ

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

Visual Studio intellisense sẽ không hiển thị dưới dạng một liên kết cho intellisense - sẽ không có nhiều điểm vì đây là một tooltip vì vậy bạn không thể nhấp vào nó.


2
Sẽ có một điểm nếu Trình duyệt đối tượng thực sự tạo<see/> ra các URI trang web có thể nhấp được nhận biết bằng cách nào đó (vì Trình duyệt đối tượng không phải là một công cụ). Chỉ cần nói ';-).
binki

6

Sử dụng một thẻ. Ví dụ tôi đã sử dụng giải pháp này trong dự án của mình

Kết quả là đây

Mã xml của tôi là:

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

Hoặc sử dụng thẻ "xem". Kết quả giống với thẻ "a"

/// <summary>
/// This is C# XML Documentation Website Link
/// <see href="/programming/6960426/c-sharp-xml-documentation-website-link">See more</see>
/// </summary>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.