C# 获取控制器操作在操作筛选器中的StackTrace/StackFrame
在C# 获取控制器操作在操作筛选器中的StackTrace/StackFrame,c#,.net,asp.net-mvc,reflection,C#,.net,Asp.net Mvc,Reflection,在ActionFilter中,是否可以获取控制器操作的当前StackFrame 当我这样做的时候 public override void OnActionExecuting(ActionExecutingContext filterContext) { var stackTrace = new StackTrace(); base.OnActionExecuting(filterContext); } stackTrace没有该操作。否,不幸的是,在操作方法完成后调用action
ActionFilter
中,是否可以获取控制器操作的当前StackFrame
当我这样做的时候
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var stackTrace = new StackTrace();
base.OnActionExecuting(filterContext);
}
stackTrace
没有该操作。否,不幸的是,在操作方法完成后调用action filter OnActionExecuting方法(因此堆栈帧被丢弃),堆栈帧将丢失
如果这是您的意图,您可以通过编程确定使用filterContext调用了哪个操作方法。我知道我可以,我只需要一个
堆栈框架
。在这种情况下,您需要从操作方法中调用堆栈跟踪检查方法。如果这是一个通用问题,您可能会发现诸如PostSharp之类的AOP工具很有用。