如何使用Reflection或其他准确方法获取控制器中当前ASP.NETcore控制器方法名controller我想获取我的ASP.NETCore控制器的当前方法名称我尝试通过反射获取方法名称:[HttpGet]publicasyncTaskCreateProcess(intcatId){姓名;但这为我提供了MoveNext的值,而不是CreateProcess请注意,我不想使用ViewContext字符串methodName=ActionContext。以上将获得createprocess而不是CreateProcess我更喜欢简单的单行扩展方法而不是多行扩展方法。您可以使用它不仅仅是控制器这一事实,还可以使用ActionContext.ActionDescriptor.Name属性来获取操作名称更新:(感谢JimAho)最新版本适用于-ASP.NETCore中的ControllerContext.ActionDescriptor.ActionName,它似乎改变了,你必须使用ActionName属性((Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor)ViewContext.ActionDescriptor).ActionName;C#5.0CallerMemberName属性可以解决问题。(我还没有从异步方法测试它;它通过常规调用工作)privatestaticstringGetCallerMemberName([CallerMemberName]stringname=""){然后从您的代码中调用它:[HttpGet]publicasyncTaskCreateProcess(intcatId){stringmethodName=GetCallerMemberName();请注意,您不需要向该方法传递任何内容。尝试使用StackTrace类及其GetFrames,直到找到所需的那个。您可以通过base.ControllerContext.ActionDescriptor.ActionName获取它。这是针对.NETCore1.0的。以上就是C#学习教程:如何使用Reflection或者其他准确的方法获取控制器中当前ASP.NETcore控制器方法名共享。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
