c# - 通过我的应用程序中的控制器获取所有方法
问题描述
当我使用:
var assemblies = GetAssemblies();
IEnumerable<Type> controllers =
assemblies.SelectMany(a => a.GetTypes().Where(t => t.IsSubclassOf(typeof(ControllerBase))));
foreach (var controller in controllers)
{
var methods = controller.GetMethods();
foreach (var methodInfo in methods)
{
var returnType = methodInfo.ReturnType;
}
}
我得到标准方法(“CreatedAtAction”),而不是像(“MyControllerName”)这样的应用程序控制器。
解决方案
我解决了这个问题:
var methods = controller.GetMethods()
.Where(m => m.GetCustomAttributes(typeof(HttpMethodAttribute), true).Length > 0);
推荐阅读
- c++ - 编译 sqlite 文档代码时出错
- node.js - NodeJS Express 中间件在没有 next() 的情况下转到下一个
- python - 如何检查班级?
- macos - Intellij 2018.3:导入设置 Mac?
- java - Kubernetes 和 Java:检索 Service 背后的 Pod IP
- java - Java - 添加多个长溢出/下溢检查
- r - 使用短语机器 (R) 从提取的短语列表中创建文档特征矩阵
- angular - 离子虚拟滚动的离子4列不起作用
- google-apps-script - 设置 BasicFilter 条件
- excel - 当您有 2 个打开的工作簿时,如何选择具有随机名称的工作簿