我已经实现了Swashbuckle.Swagger.IOperationFilter
来处理自定义属性,如下所述:https://stackoverflow.com/a/52948376/13087
我现在想对Swashbuckle.AspNetCore 5.0.0
做类似的事情。
ApiDescription
类似乎没有原始实现中使用的扩展方法GetControllerAndActionAttributes
。我尝试通过查看其source code来重新实现它,但是它使用的成员ApiDescription.ActionDescriptor.ControllerDescriptor
和ApiDescription.ActionDescriptor.GetCustomAttributes<TAttribute>
对于.NET Core我似乎并不存在。
任何人都可以通过向我展示如何从IOperationFilter
获取自定义控制器和操作属性来帮助我入门吗?
更新看起来.NET Framework实现的ActionDescriptor
实际上是ReflectedActionDescriptor。此类的构造函数采用MethodInfo
,用于查找属性。
但是我看不出有任何方法可以为.NET Core实现MethodInfo
获得Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor。
ApiDescription.TryGetMethodInfo
将获得MethodInfo
,从而可以访问自定义属性。