我想尝试计算ASP.NET MVC ActionMethod。
我在想一个很好的方法就是使用自定义标题。
我可以使用ActionFilterAttribute来执行此操作吗? 有没有人这样做过,或者是否有任何ASP.NET功能的构建来做到这一点?
我刚被赶出星巴克并希望有人在我回家之前得到答案。通常有人这样做: - )
答案 0 :(得分:3)
您可以尝试Eqatec profiler。它是免费的:)
答案 1 :(得分:3)
我同意asp.net跟踪最适合这份工作。但使用ActionFilter应该很有趣。
此代码未经测试。
public class TimingAttribute : ActionFilterAttribute
{
Stopwatch stopwatch;
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
stopwatch = new Stopwatch();
stopwatch.Start();
base.OnActionExecuting(filterContext);
}
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
try
{
base.OnResultExecuted(filterContext);
}
finally
{
stopwatch.Stop();
var ms = stopwatch.ElapsedMilliseconds;
// your logging here. controller/action/request info could be extracted from filterContext
}
}
}
答案 2 :(得分:0)
我同意Cherian的观点,追踪是最好的选择,因为它应该是最准确的。
我认为如果我能猜出你的想法是什么属性选项,我必须假设你会使用反射来排序动态启动和停止方法执行时的方法。我觉得这很酷,但它可能会增加开销给出错误的读数。