2009-08-28 40 views
3

我想記錄我的源代碼(C#源代碼),的確我使用定義的XML文檔標籤。我如何通過特定的標籤來定義?C#文檔 - 用戶定義的標籤

例如我使用了很多Design by Contract斷言。我想有文檔章節 爲先決條件,後置條件,不變量... 應該desiderable寫這樣的文件:因爲我不是一個XML大師

/// <precond>arg != null</precond> 
/// <postcond>return > 0</postcond> 

,你一個人(大師)請教我嗎?

我試圖使用< include>,但是對於正確構建文檔是不可能的(對我而言)。

非常感謝您

+0

有沒有理由不能簡單地在''和''內容中包含該信息? – AnthonyWJones 2009-08-28 10:35:24

+0

是的。最簡單的前提意味着直接參數連接;在這種情況下,你是對的。但是類可能更加複雜,只能在某些類的狀態上調用方法......描述它時,不需要預先佈置條件,這可能是一種遺憾,特別是當我的所有類都使用DBC定義時。 – Luca 2009-08-28 11:04:46

回答

2

使用NDoc構建文檔及其custom tags可能是一個解決方案。 NDoc的一個問題是前一段時間停止了開發。

Sandcastle also supports custom tags,我不確定那是否適用Sandcastle Builder,但如果這是一個問題。

兩者都是通過自定義默認的XSL來完成的,例如,

<xsl:template match="myTag" mode="seealso-section"> 
    <h1 class="green"> 
     <xsl:value-of select="." mode="slashdoc"/> 
    </h1> 
    </xsl:template>  
    <xsl:template match="null" mode="slashdoc"> 
    <xsl:text> null reference (Nothing in Visual Basic) </xsl:text> 
</xsl:template> 

由編譯器內置的XML(csc.exe /doc)沒有在標籤上強制執行的命名空間,所以你可以自由的使用你喜歡的任何標記。

+0

謝謝。很遺憾我不使用Visual Studio ... – Luca 2009-08-28 11:40:48

+1

異教徒!把他綁起來 – 2009-08-28 12:09:05

5

首先什麼是可能的XML註釋very usefull description

接下來,生成文檔的應用程序必須知道您的自制標籤。我目前還不知道可以使用其他屬性或元素進行擴展的文檔構建器。

+0

我知道如何記錄C#代碼。你說的是不可能擴展文檔標籤,至少沒有軟件生成文檔的迭代? – Luca 2009-08-28 11:31:02

+2

NDoc和Sandcastle都支持擴展標籤。 NDoc自發布以來一直保持 – 2009-08-28 13:24:44

+0

支持此答案的鏈接已被打破,Sandcastle *支持定製相關聯的'main_sandcastle.xsl'文件以添加自制標籤。 – atconway 2013-03-18 21:14:40