【问题标题】:Adding comments to a WSDL output from WCF/.Net从 WCF/.Net 向 WSDL 输出添加注释
【发布时间】:2009-03-17 17:24:55
【问题描述】:

根据 W3 的 WSDL 规范,可以将“wsdl:document”标签添加到 WSDL 输出中,以便使用该 Web 服务的人对该 Web 服务有更好的解释/文档。

有谁知道如何让 WCF 使用这些 cmets/描述,或者如何用 C# 编写将这些 cmets 作为 wsdl 的一部分导出的代码?

谢谢,迈克尔

【问题讨论】:

    标签: wcf wsdl


    【解决方案1】:

    似乎 GitHub 上的社区项目 WCFExtras 提供了一种解决 .NET 3.5 限制的方法。

    【讨论】:

    • 刚刚尝试过 - 即使我的解决方案是在 .NET 4.0 中,它也能像魅力一样工作。感谢乔安妮斯
    【解决方案2】:

    如果您在使用 [ServiceContract] 和 [OperationContract] 装饰的 C# 类中进行设计/编码,那么我不知道有任何方法可以将您可能拥有的关于这些类和方法的文档导出到 WSDL,不幸的是。

    我也对此感到震惊 - 我希望我的类和方法上的任何 /// cmets 会出现在 WSDL 中 - 不走运 :-(

    我们现在的解决方案是: 1) 我们使用 C# 中的所有操作创建服务接口的基本“模型” 2)我们把它编译成一个程序集 3) 我们从该程序集中提取元数据(WSDL、XSD),然后丢弃 C#“原型” 4) 我们手动将 cmets (xs:annotation/xs:documentation) 添加到 WSDL 和 XSD 5) 从现在开始,WSDL/XSD 是主要的——我们从这些描述中生成我们的接口

    麻烦又烦人,但对我们来说还算可以。

    我当然希望 VS2010 / WCF 4.0 能给我们带来更多这方面的支持!!

    马克

    【讨论】:

      【解决方案3】:

      http://msdn.microsoft.com/en-us/library/aa717040.aspx

      我认为这可以满足您的需求,但它仅适用于 .NET 客户端。

      【讨论】:

        【解决方案4】:

        不幸的是,WCF 不会自己做。有一些 WSDL 生成的扩展点可以用来至少部分完成此任务:查找 IWSDLExportExtension 接口。

        我有一个small example,关于如何在我的网站上实现一个简单的 WSDL 导出扩展,这可能会帮助您入门。

        【讨论】:

        • 谢谢 - 但这只是第一步。我真正想要的是能够将我在 ServiceContract、OperationContract 和 DataContract 上创建的任何“/// cmets....”导出到 WSDL 和 XSD 中。有什么想法吗?
        【解决方案5】:
        [WebService(Namespace = "XXXXXXXXXXXXX", **Description**="V0.2.42")]
        

        描述在 .NET 4.0 中放了任何你想要的东西,不确定是哪个版本...可能回答得有点晚了,但答案似乎比向 WSDL 中添加一个只有开发人员才能看到的简介所需的复杂。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-10-03
          • 2019-06-16
          • 2011-07-15
          • 1970-01-01
          • 2014-04-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多