AOP through Unity interceptors - Performance monitoring
Today we continue the serie on AOP with Performance monitoring. The principle is very simple: we want to monitor the time a method took to execute. Here is the code of the class. public class PerformanceMonitoringInterceptionBehavior : IInterceptionBehavior { public IEnumerable<Type> GetRequiredInterfaces() { return Type.EmptyTypes; } public IMethodReturn Invoke(IMethodInvocation input, GetNextInterceptionBehaviorDelegate getNext) { Stopwatch sw = Stopwatch.StartNew(); var result = getNext()(input, getNext); sw.Stop(); WriteLog(String.Format("Method {0} took {1} ms", input.MethodBase, sw.ElapsedMilliseconds)); return result; } public bool WillExecute { get { return true; } } private void WriteLog(string message, string args = null) { var utcNow = DateTime.UtcNow;