我正在编写一个非常简单的实用程序类,目的是测量传入的任何方法(任何类型)的执行时间。
在我的情况下Membership.ValidateUser(model.UserName, model.Password)
,返回布尔所以我得到一个例外。
我想是否可以编写一个这种类型的实用程序类,以及如何修复它的代码示例。使用动态而不是动作有意义吗?
Tracing.Log(Membership.ValidateUser(model.UserName, model.Password), "Membership.ValidateUser");
public static class Tracing
{
public static void Log(Action action, string message)
{
// Default details for the Log
string sSource = "TRACE";
string sLog = "Application";
// Create the Log
if (!EventLog.SourceExists(sSource))
EventLog.CreateEventSource(sSource, sLog);
// Measure time Elapsed for an Action
Stopwatch stopwatch = Stopwatch.StartNew();
action();
stopwatch.Stop();
TimeSpan timeElapsed = stopwatch.Elapsed;
// Write the Log
EventLog.WriteEntry(sSource, "TIME-ELAPSED: " + timeElapsed .ToString() + message, EventLogEntryType.Warning, 234);
}
}