所以我正在使用WCF,并希望记录我的界面和服务,以便为另一家公司提供内部应用程序。记录这些界面的最佳方法是什么?我更喜欢将文档与代码内联,然后对输出HTML有一些美化,但我不确定是否有推荐的方法来执行它。
答案 0 :(得分:38)
我们使用WCFExtras(http://www.codeplex.com/WCFExtras)。
在其他功能中,它允许将代码xml注释实时导出到生成的WSDL中,例如检查这些xml注释的方式:
/// <summary>
/// Retrieve the tickets information for the specified order
/// </summary>
/// <param name="orderId">Order ID</param>
/// <returns>Tickets data</returns>
[OperationContract]
TicketsDto GetTickets(int orderId);
反映在该接口的WSDL中:
<wsdl:operation name="GetTickets">
<wsdl:documentation>
<summary> Retrieve the tickets information for the specified order </summary> <param name="orderId">Order ID</param> <returns>Tickets data</returns>
</wsdl:documentation>
<wsdl:input wsaw:Action="xxxx" message="tns:PartnerAPI_GetTickets_InputMessage"/>
<wsdl:output wsaw:Action="xxxx" message="tns:PartnerAPI_GetTickets_OutputMessage"/>
</wsdl:operation>
摘自他们的文档:
从源代码XML注释添加WSDL文档 此扩展允许您直接从源文件中的XML注释添加WSDL文档(annotaiton)。这些注释将作为WSDL的一部分发布,并且可用于知道如何利用它们的WSDL工具(例如Apache Axis wsdl2java和其他)。版本2.0还包括一个客户端WSDL导入器,它将这些WSDL注释转换为生成的代理代码中的XML注释。
答案 1 :(得分:5)
请使用XML文档。有许多智能元标记允许您将代码示例放入其中,操作之间的引用,抛出异常等。
然后你可以使用Sandcastle(你可以在Codeplex上找到一些GUI)来生成chm或html文档。
答案 2 :(得分:3)
我使用两个XSL文件 - 一个用于记录操作的WSDL,一个用于记录传递数据的XSD。
不幸的是,到目前为止,我还没有找到一个统一的解决方案,所以我使用了两个XSLT文件,它们分别将WSDL和XSD转换为HTML文档。
WSDL Viewer完成WSDL的工作并生成第一个HTML文档,xs3p对XSD文件中包含的数据执行相同的操作。
答案 3 :(得分:0)
使用编译器的XML输出很不错......但是根据我的经验,很难表达服务的完整复杂性,而且仅在评论中就是预期的不变量,依赖关系等。你最好维护一个单独的真实文档(Word,HTML,Wiki)来覆盖它。
答案 4 :(得分:0)
我会将我的接口合同放入一个共同的dll并将其交给我。它为合同提供了xml评论,但没有提供服务的详细信息,也允许他们在离线模式下实施服务进行测试,直到他们准备好使用它为止。最重要的是,他们可以绕过wsdl并使用ChannelFactory创建一个频道。