asp.net-core - 如何在 .NET Core 中实现处理自定义属性的 Swashbuckle IOperationFilter
问题描述
我已经实现了一个Swashbuckle.Swagger.IOperationFilter
来处理自定义属性,如下所述:https ://stackoverflow.com/a/52948376/13087
我现在想做类似的事情Swashbuckle.AspNetCore 5.0.0
。
该类似乎ApiDescription
没有GetControllerAndActionAttributes
在原始实现中使用的扩展方法。我尝试通过查看它的源代码来重新实现它,但它使用成员ApiDescription.ActionDescriptor.ControllerDescriptor
并且ApiDescription.ActionDescriptor.GetCustomAttributes<TAttribute>
我似乎不存在于 .NET Core 中。
任何人都可以通过向我展示如何获取自定义控制器和操作属性来帮助我入门IOperationFilter
吗?
更新
看起来 .NET Framework 实现有一个ActionDescriptor
实际上是ReflectedActionDescriptor。这个类有一个构造函数,它接受一个MethodInfo
用于查找属性的构造函数。
但我看不到任何方法来获得MethodInfo
.NET Core 实现Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor。
解决方案
我找到了答案:有一个扩展方法ApiDescription.TryGetMethodInfo
可以获取MethodInfo
并因此可以访问自定义属性。
推荐阅读
- android - 找不到 ActivityCompatApi23 无法访问 ActivityCompatApi23 类文件
- java - GridLayout 约束不起作用
- python - 熊猫集团通过制作系列;不是 groupby 对象
- mongodb - Mongodb Schema 使用 mongoose
- javascript - 如何停止加载下一页
- laravel-5.2 - laravel 每个套接字地址只使用一次
- javascript - 如何在 javascript 函数中使用 PHP $_SESSION?
- javascript - 重定向之前的节点/快递暂停
- python - _make_train_function (Keras) 中不支持 ValueError 无值
- javascript - 如何从浏览器的“查看页面源”功能中删除链接?