【问题标题】:Auto-generating documentation and Inheritence自动生成文档和继承
【发布时间】:2015-09-01 22:33:23
【问题描述】:

我有基本的 API 控制器:

 public class BaseController<T> : ApiController
{
    /// <summary>
    /// Method GetByYear in Base class
    /// </summary>
    /// <param name="year"></param>
    /// <returns></returns>
    public virtual IQueryable<T> GetByYear(int year)
    {
        return null;
    }
}

以及刚刚从基类继承方法 GetByYear 的子对象:

public class HouseController : BaseController<House>
{
    /// <summary>
    /// Method Test
    /// </summary>
    /// <returns></returns>
    public string Test()
    {
        return "Test";
    }
}

我使用帮助页面来创建自动文档。结果我得到:

我想了解这两种方法的描述。
如何在不覆盖的情况下将 XML cmets 获取到子类中的方法 GET?
或者我应该把它复制到我的孩子班级吗?

当我在 HouseController 中使用 &lt;inheritdoc /&gt; 时,我得到与上面相同的结果,并且我不想在不需要时覆盖每个方法:

     /// <inheritdoc />
    public override IQueryable<House> GetByYear(int year)
    {
        return base.GetByYear(year);
    }

另一个问题:如何在默认帮助页面中使用 ghostdoc?

【问题讨论】:

  • 您在问是否应该记录派生类和覆盖?嗯……是的。您确实不需要记录未被覆盖的继承成员。
  • 有没有办法将xml cmets复制到派生类中?

标签: c# asp.net-web-api documentation xml-documentation asp.net-web-api-helppages


【解决方案1】:

您可以使用/// &lt;inheritdoc /&gt;

【讨论】:

  • 是的,但是为了使用它,我还必须重写基本方法。如果不需要覆盖,我想将子类的主体留空
  • @D.Joe 不过,我不会打扰 - 您的文档生成器应该为您提供指向基类的链接。,仅记录被覆盖的新方法实际上使文档更有用。
  • 我需要this 答案中的解决方案。但这对我不起作用((。
  • 你能帮帮我吗?
【解决方案2】:

这可能取决于将 XML cmets 转换为实际文档的程序,但例如,MSDN 只是复制基本文档,并指出它是从基类继承的。所以你不需要复制派生成员的文档(除非它们被覆盖并且行为不同,因此需要不同的文档)

【讨论】:

  • 谢谢。这是一个非常好的消息,但为什么它对我不起作用?
  • 您必须更具体一些 - 究竟是什么 不起作用?你用什么来生成实际的文档? (请添加到您的问题中,而不是作为评论)
  • 你能帮帮我吗?
猜你喜欢
  • 2011-06-22
  • 1970-01-01
  • 2015-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-07
  • 1970-01-01
  • 2014-01-31
相关资源
最近更新 更多