【问题标题】:can csharp classes "inherit" the xml documentation like java classes can?csharp 类可以像 java 类一样“继承”xml 文档吗?
【发布时间】:2011-01-10 10:42:50
【问题描述】:

我正在将 cmets 添加到一些 csharp 代码中,并且我正在使用 .net(或其他东西)提供的 xml 语言。我有一个接口和一些实现类。我在界面中有一种方法,它有注释。在实现类中没有对实现方法的注释。

当在 java 中这样做时,javadoc 在生成文档时会自动使用接口注释。但是,现在我构建了我的项目,我收到警告(从瑞典语翻译,对不起)“可见类型或成员 bla.blabla.blablabla() 的 xml 注释丢失(cs1591)”。这只是一个警告,所以还不错。但!!!这意味着没有输出 xml 文件,所以我不能使用 sandcastle 来生成 chm 文档文件,这是我在这里的真正目标....谷歌搜索错误编码什么都没有:(

我真的必须将方法注释复制到所有实现类吗?这就像....代码重复 D:有没有办法获得 java 提供的行为?

【问题讨论】:

    标签: c# java documentation


    【解决方案1】:

    我不知道有什么方法可以在生成 XML 文件时发生这种情况,但 GhostDoc 可能会让您免于手动执行复制。不过我不能说我自己用过。

    我同意这将是一个有价值的功能...特别是如果在派生类实现和记录之后基类(或接口)文档发生更改。

    【讨论】:

      【解决方案2】:

      您必须将接口 cmets 复制到实现类。一般来说,这是一件好事,因为理想情况下这两个 cmets 应该是不同的——我对此的看法(和实践)可以总结如下:

      接口注释 - 解释方法/属性/等应该/期望做什么,但通常不应禁止任何特定实现的行为

      实现类注释 - 解释方法/属性/等的实际作用,并可能包括有关如何完成的一些细节(通常在 <remarks> 中)

      【讨论】:

      • 我完全不同意。对于所有可能的实现,接口注释应该是(抽象的)足够的。我认为这对于 java 的内置 api 非常有效。
      【解决方案3】:

      VSdocman 可以在生成文档时自动从已实现的接口中解析缺少的 XML cmets。而且,和 GhostDoc 一样,它也可以显式地将继承的 cmets 复制到实现方法中。与 Sandcastle 不同,它不是免费的。

      【讨论】:

        【解决方案4】:

        好吧,我不了解 Java,但很抱歉,您必须在已实现的类中复制接口的 cmets。这里没有内置的方法......

        是的,请考虑 JonSkeet 给出的建议

        【讨论】:

        • 这个答案让我很难过:€(我本来打算只放一张悲伤的脸,但应用程序不允许我这样做)
        • 对不起...请尝试使用其他答案中建议的 3rd 方工具.. :(
        猜你喜欢
        • 1970-01-01
        • 2011-06-24
        • 2011-06-03
        • 1970-01-01
        • 1970-01-01
        • 2012-01-07
        • 1970-01-01
        • 1970-01-01
        • 2018-02-08
        相关资源
        最近更新 更多