C#获取类以及类下的方法(用于Asp.Net MVC)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#获取类以及类下的方法(用于Asp.Net MVC),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1947字,纯文字阅读大概需要3分钟。
内容图文
在开发MVC项目中遇到的问题,做权限控制时,通过MVC的过滤器来实现,所以在分配权限时希望获取到所有的控制器和Action方法,通过查找资料,参考了《Asp.Net MVC框架揭秘》,最终实现。
在C#中,实现动态获取类和方法主要通过反射来实现,要引用System.Reflection。
public ActionResult GetControllerAndAction() List<Type> controllerTypes = new List<Type>(); //创建控制器类型列表var assembly = Assembly.Load("MySoft.UI"); //加载程序集 controllerTypes.AddRange(assembly.GetTypes().Where(type => typeof(IController).IsAssignableFrom(type) && type.Name!="ErrorController")); //获取程序集下所有的类,通过Linq筛选继承IController类的所有类型 StringBuilder jsonBuilder = new StringBuilder(); //创建动态字符串,拼接json数据 注:现在json类型传递数据比较流行,比xml简洁 jsonBuilder.Append("["); foreach (var controller in controllerTypes)//遍历控制器类 { jsonBuilder.Append("{\"controllerName\":\""); jsonBuilder.Append(controller.Name); jsonBuilder.Append("\",\"controllerDesc\":\""); jsonBuilder.Append((controller.GetCustomAttribute(typeof(DescriptionAttribute)) as DescriptionAttribute)==null?"" : (controller.GetCustomAttribute(typeof(DescriptionAttribute)) as DescriptionAttribute).Description); //获取对控制器的描述Description jsonBuilder.Append("\",\"action\":["); var actions = controller.GetMethods().Where(method => method.ReturnType.Name == "ActionResult"); //获取控制器下所有返回类型为ActionResult的方法,对MVC的权限控制只要限制所以的前后台交互请求就行,统一为ActionResultforeach (var action in actions) { jsonBuilder.Append("{\"actionName\":\""); jsonBuilder.Append(action.Name); jsonBuilder.Append("\",\"actionDesc\":\""); jsonBuilder.Append((action.GetCustomAttribute(typeof(DescriptionAttribute)) as DescriptionAttribute) == null ? "" : (action.GetCustomAttribute(typeof(DescriptionAttribute)) as DescriptionAttribute).Description); //获取对Action的描述 jsonBuilder.Append("\"},"); } jsonBuilder.Remove(jsonBuilder.Length - 1, 1); jsonBuilder.Append("]},"); } jsonBuilder.Remove(jsonBuilder.Length - 1, 1); jsonBuilder.Append("]"); return Content(jsonBuilder.ToString(),"json/text");t");
原文:http://www.cnblogs.com/panxiangfu/p/5541103.html
内容总结
以上是互联网集市为您收集整理的C#获取类以及类下的方法(用于Asp.Net MVC)全部内容,希望文章能够帮你解决C#获取类以及类下的方法(用于Asp.Net MVC)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。