我有一个控制器,我在类级别声明它不会显示在自动生成的API帮助页中,如下所示:
[Authorize, ApiExplorerSettings(IgnoreApi = true)]
public class MyController : ApiController {
public HttpResponseMessage method1() {/*...*/}
public HttpResponseMessage method2() {/*...*/}
public HttpResponseMessage method3() {/*...*/}
/*...*/
}
现在说我想覆盖ApiExplorerSetting
注释只是为了method 2
以便将其添加到文档中。我显然尝试过:
[Authorize, ApiExplorerSettings(IgnoreApi = true)]
public class MyController : ApiController {
public HttpResponseMessage method1() {/*...*/}
[ApiExplorerSettings(IgnoreApi = false)]
public HttpResponseMessage method2() {/*...*/}
public HttpResponseMessage method3() {/*...*/}
/*...*/
}
但无济于事。关于我如何实现这种行为,有什么见解吗<干杯。
如果您使用Swashbuckle生成API帮助页面,那么可以使用DocumentFilter配置SwaggerGen。过滤器允许您在SwaggerUI可用之前以编程方式修改SwaggerDocument(即添加或删除某些方法)。
这里有更多细节
问题内容: 假设我在Java类中有一个方法,并且我不希望该类的任何子类能够覆盖该方法。我可以那样做吗? 问题答案: 您可以将方法声明为,如: 有关更多信息,请参见http://docs.oracle.com/javase/tutorial/java/IandI/final.html
问题内容: 是否有一种标准方法可以在Swift中制作“纯虚函数”,即。一个 必须 由每个子类中被覆盖,并且,如果不是的话,将导致编译时错误? 问题答案: 您有两种选择: 将超类定义为协议而不是类 Pro :编译时检查每个“子类”(不是实际的子类)是否实现了所需的方法 缺点 :“超类”(协议)无法实现方法或属性 2.声明该方法的超级版本 例: Pro :可以在超类中实现方法和属性 缺点 :不检查编译
问题内容: 我想为 isEmpty 方法添加自定义行为。 当我从 我应该重写序列化方法,因为它是抽象的。 我想按原样保留序列化方法,并仅覆盖isEmpty方法。 问题答案: 为了修改行为但保持默认的序列化,您可以利用 serializer修饰符 。您仍然必须实现自定义序列化程序,但是可以非常干净地利用默认序列化程序。 使用默认的序列化器创建一个自定义序列化器 将变量插入到您的自定义序列化器类中。当
问题内容: 我希望有人能够回答这个对Python有深刻理解的问题 考虑以下代码: 注意)如何不会产生的预期结果?我想知道为什么会这样,是否有办法实现这一目标… 相比之下,下面的示例仍然有效(也许是因为我们不打算重写特殊方法吗?): 问题答案: 不会调用特殊方法,那些__在实例上带有名称包围的特殊方法,而仅在类上,显然可以提高性能。因此,无法直接在实例上进行覆盖并使其起作用。相反,你需要执行以下操作
这是一个更大的项目,所以我将简化结构,不包括这里涉及的所有代码,但我想知道这在概念上是否可行,以及我可能遇到的潜在障碍。 我从主类中得到了几个级别的子类,其中一个级别包含方法age()(从顶部超类重写),该方法调用useEnergy()。此类的直接子类重写age()。该类的直接子类需要重写useEnergy(),但被重写方法中的代码永远不会执行(通过System.out.printlns验证)。有
问题内容: 我希望当子类覆盖父类中的方法时,在该子方法中调用。 有什么办法在编译时检查吗? 如果没有,发生这种情况时,我将如何抛出运行时异常? 问题答案: 无法直接要求这样做。但是,您可以执行以下操作: 这提供了一个内部接口点,子类可以使用该接口将自定义行为添加到public 方法,同时确保无论子类做什么都始终执行超类行为。