6

我正在尝试使用 SandCastle 为 WCF 服务生成外部文档。我如何告诉 SandCastle 使用 WCF 属性ServiceContract来命名函数和实体,而不是它们在程序集中的名称?

4

1 回答 1

1

好的,以下内容不会直接回答您的问题,但无论如何它可能会有所帮助。

如果您说要创建“外部服务文档”,那么该外部文档可能并不真正适用于 .NET 开发人员,您甚至可能不希望该实现细节(必然)可见。因此,典型的 API 样式文档可能无论如何都不适合。

除了 API 样式文档,Sandcastle 还支持所谓的“概念文档”。这基本上是“自由文本”,当然是某种 XML 方言。我稍后再谈。

好的,您将首先为您的服务接口生成一个 WSDL 文件(通常通过附加?WSDL到服务的 URI 或SVCUTIL.EXE在您的服务程序集上使用,这更适合在自动构建期间)。

然后是困难的部分。您需要创建将 WSDL 转换为MAML文档的东西(想到一个 XML 样式表)。MAML(Microsoft 辅助标记语言)实际上是 Sandcastle 使用的核心格式。

我认为您最好的选择是然后使用Sandcastle Helpfile Builder从这些文件中创建项目,以创建 CHM、HTML 页面或其他任何内容。

基本上,一旦您拥有 MAML 文档,您就回到了“标准”Sandcastle 工具链中。

我知道这听起来像是一些工作,而且可能确实如此。过去我做过类似的事情,我会使用 SMO 查询 SQL Server 数据库以生成表、过程等的 MAML 文档以生成参考文档。实际上,它的效果非常好,最终的努力也不算太差。

无论如何,如果确实存在“现成”解决方案,我会一直盯着这个问题:-)

于 2011-08-12T10:35:48.037 回答