gpt4 book ai didi

asp.net-mvc - .NET MVC : Counting Action methods in web application

转载 作者:行者123 更新时间:2023-12-04 22:48:08 24 4
gpt4 key购买 nike

我们有一个巨大的 ASP.NET MVC 3 应用程序。我们需要计算在 currentClass is System.Web.Mvc.Controller 的类中有多少公共(public)方法。 .

任何满足此标准的类都将具有“AwesomeProduct.Web”的基本命名空间,但除了这些类可能属于哪个命名空间或有多少深度级别之外,无法保证。

解决这个问题的最佳方法是什么?

最佳答案

像这样的一些反射和LINQ应该这样做

var actionCount = typeof(/*Some Controller Type In Your MVC App*/)
.Assembly.GetTypes()
.Where(t => typeof(Controller).IsAssignableFrom(t))
.Where(t => t.Namespace.StartsWith("AwesomeProduct.Web"))
.SelectMany(t => t.GetMethods(BindingFlags.Public | BindingFlags.Instance))
.Where(m => typeof(ActionResult).IsAssignableFrom(m.ReturnType))
.Where(m => !m.IsAbstract)
.Where(m => m.GetCustomAttribute<NonActionAttribute>() == null)
.Count();

这不适合异步 Controller 操作。

关于asp.net-mvc - .NET MVC : Counting Action methods in web application,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15283158/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com