Asp.net web api ASP.NET Web API帮助页忽略从基本控制器继承的控制器

Asp.net web api ASP.NET Web API帮助页忽略从基本控制器继承的控制器,asp.net-web-api,asp.net-web-api-helppages,Asp.net Web Api,Asp.net Web Api Helppages,我有一个控制器,我想为使用ASP.NET Web API帮助页生成文档 当我直接从ApiController继承时,会出现以下文档: public class ExampleController : ApiController 但当我从基本控制器继承时,它被省略: public class ExampleController : ApiBaseController 我已经转向委托而不是继承,但我想知道如何使它与继承一起工作。以下是我在实验中学到的技巧 文档在很大程度上依赖于API配置中的路

我有一个控制器,我想为使用ASP.NET Web API帮助页生成文档

当我直接从
ApiController
继承时,会出现以下文档:

public class ExampleController : ApiController
但当我从基本控制器继承时,它被省略:

public class ExampleController : ApiBaseController


我已经转向委托而不是继承,但我想知道如何使它与继承一起工作。

以下是我在实验中学到的技巧

文档在很大程度上依赖于API配置中的路由。如果您的控制器未被路由覆盖,它将不会显示。此外,API配置中的路由顺序与文档中的操作顺序相同

为了覆盖这两个点,我为每个控制器创建了命名路由。这样做的另一个好处是使每个路由都是特定的,而不是一条包含大量可选位的路由。这确保我的所有操作都以良好的顺序出现在文档中


我还添加了API tester,因此可以直接从文档中调用API。

检查基类中的权限。我也有同样的问题,这是应该设置为内部受保护的方法的结果

确保父项需要访问的所有方法都设置为“内部”,并且覆盖ApicController的所有方法都设置为“受保护”

如果代码仍然不起作用,请发布代码


工作原理类似于Gravy:)

此代码是通过友好方式生成的,可能反射方法仅直接从ApiController调用child,我正在查看源代码,稍后会注意到您!您正在使用哪个版本的ASP.NET?我做了一个SimplesBaseApiController,然后包括了一个新的一个子基和文档工作!您是否碰巧在基本控制器上有名为
ApiExplorerSettings
的属性?我现在要强调区别,因为我有另一个控制器继承自同一个基本控制器,但出现在文档中。
public class ApiBaseController: ApiController