Piszę bardzo prostą klasę użytkową, której celem jest pomiar czasu wykonanego dla każdej metody przekazanej (dowolnego typu).Jak liczyć czas, jaki upłynął dla metody z klasą użyteczności
W moim przypadku Membership.ValidateUser(model.UserName, model.Password)
return bool, więc otrzymuję wyjątek.
Chciałbym, jeśli byłoby to możliwe, napisać klasę użytkową tego typu, próbkę kodu, jak to naprawić. Czy ma sens korzystanie z dynamiki zamiast działania?
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);
}
}
Chciałbym podziękować za wyjaśnienie. W jaki sposób można przepisać moją klasę i sprawić, by korzystanie z labdy było w środku? dziękuję za poświęcony czas – GibboK
@ GibboK: Nie wiem o co ci chodzi. Pokazałem ci, jak możesz wywołać tę metodę. –
Dzięki Jon, nie wiedziałem o MVC-Profiler. – GibboK