asp.net core webapi项目,项目中已使用Swagger实现分组显示,分组方式是给Controllers或Action添加[Route("api/open"), ApiExplorerSettings(GroupName = "ApiGroupName")]方式实现。
先前项目有两个全局的Filter用来处理ModelState和Exception用于对返回的数据封装为指定的格式,定义如下:
现在的问题是,我想在新加入的分组中的api中使用不同的返回格式,怎么在IAsyncExceptionFilter 和 IAsyncActionFilter 继承类中取到ApiExplorerSettings中定义的组名。
类似代码应该可以判断
if (context.ActionDescriptor is ControllerActionDescriptor contextActionDescriptor)
{
var attributes = contextActionDescriptor.MethodInfo.GetCustomAttributes();
}
嗯嗯,就是这样了,就是不知道怎么获取到 ControllerDescriptor 信息,原来还可以 context.ActionDescriptor is ControllerActionDescriptor ,学到了。