2009-08-28 51 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