2009-04-27 29 views
48

Bạn có viết xml-doc cho không gian tên không? Và nếu có, làm thế nào và ở đâu?Tài liệu XML cho không gian tên

Tôi nghĩ rằng, nếu có thể, có lẽ một tập tin gần như trống rỗng như thế này:

/// <summary> 
/// This namespace contains stuff 
/// </summary> 
namespace Some.Namespace 
{ 

} 

Nhưng sẽ làm việc đó? Vì bạn ... "khai báo", hoặc ít nhất là sử dụng không gian tên trong tất cả các tệp khác ... và điều gì sẽ xảy ra nếu bạn viết một tài liệu xml ở một nơi khác trên cùng một không gian tên? Một người có thể biến mất không? Hoặc họ sẽ được sáp nhập bằng cách nào đó?

Trả lời

32

NDoc hỗ trợ này bằng cách nhận một NamespaceDoc lớp học đặc biệt nằm trong mỗi không gian tên, và sử dụng tài liệu từ đó. Tôi đã không thử nó, nhưng Sandcastle xuất hiện để hỗ trợ các trick tương tự.

Edit: Ví dụ:

namespace Some.Namespace 
{ 
    /// <summary> 
    /// This namespace contains stuff 
    /// </summary> 
    public static class NamespaceDoc 
    { 
    } 
} 
+0

Vì vậy, NamespaceDoc trực tiếp? Tôi có đặt một trong mỗi thư mục sau đó không? Để có một bình luận cho mỗi người trong số họ ... – Svish

+0

Đúng, sẽ dán một ví dụ vào câu trả lời của tôi. –

+3

Sử dụng công khai thay vì nội bộ sẽ khiến lớp học này xuất hiện trong sự giúp đỡ cũng như điều xấu. –

24

Sandcastle không hỗ trợ NamespaceDoc trực tiếp, nhưng nếu bạn sử dụng Sandcastle Help File Builder bạn có thể sử dụng lớp NamespaceDoc đề cập bởi Tim.

namespace Example 
{ 
    /// <summary> 
    /// <para> 
    ///  Summary 
    /// </para> 
    /// </summary> 
    /// <include file='_Namespace.xml' path='Documentation/*' /> 
    internal class NamespaceDoc 
    { 
    } 
} 

SCHB cũng mở rộng cú pháp một chút và cho phép nhúng mã ví dụ trực tiếp từ tệp mã. Một ví dụ _Namespace.xml:

<?xml version="1.0" encoding="utf-8" ?> 
<Documentation> 
    <summary> 
    <h1 class="heading">Example Namespace</h1> 
    <para> 
     This namespace is used in the following way: 
    </para> 

    <code source="Examples\Class.cs" lang="cs"></code> 
    <code source="Examples\Class.vb" lang="vbnet"></code> 

    <para> 
     Hopefully this helps! 
    </para> 
    </summary> 
</Documentation> 

Bao gồm tài liệu trong tập tin XML cho phép bạn viết tóm tắt ngắn gọn trong mã và mô tả lớn hơn trong một tập tin XML riêng biệt cho các tập tin trợ giúp. Bằng cách này, mã không lộn xộn với tất cả các chi tiết và vẫn dễ đọc.

+0

Iiinteresting ... Tại sao "Tài liệu/*" là đường dẫn? – Svish

+0

Ồ. Đó là một biểu thức XPath cho _Namespace.xml. Có thể lưu trữ tất cả tài liệu trong cùng một tệp XML và chỉ bao gồm các tài liệu này dựa trên đường dẫn của chúng, tức là. path = 'Documentation/Namespace/*' vv Ví dụ XML sử dụng thẻ gốc 'Documentation/*' và là lớp cụ thể để Path chỉ bao gồm mọi thứ bên trong thẻ gốc. –

0

Nếu sử dụng Mono 's mdoc hệ thống tài liệu, bạn có thể lập tài liệu thành viên không gian tên bằng cách chỉnh sửa tệp tài liệu ns - *. Xml.

Xem mdoc file format documentation để biết thêm chi tiết.

12

Trình tạo tệp trợ giúp Sandcastle hỗ trợ nhận xét về không gian tên. Mở dự án Sandcastle của bạn. Trong cửa sổ Project Properties, hãy điều hướng đến Summaries và nhấp vào nút Edit Namespace Summaries.

enter image description here

+0

Hoàn hảo, chỉ là những gì tôi đang tìm kiếm! – Omaer

1

Bạn có thể làm điều đó trong doxygen sử dụng:

/// <summary> 
/// description 
/// </summary> 
namespace name{}; 

Ngoài ra, đó là một thực hành tốt để khai báo không gian tên của bạn trong một tập tin NameSpaces.cs, và bình luận họ chỉ trong tập tin này.

Các vấn đề liên quan