2012-09-25 52 views
0

我有我使用的服務的時間攔截:如何暫停動態代理的攔截器?

class TimingInterceptor : IInterceptor 
{ 
    public void Intercept(IInvocation invocation) 
    {     
     var watch = new Stopwatch(); 
     watch.Start(); 
     try 
     { 
      invocation.Proceed(); 
     } 
     finally 
     { 
      watch.Stop(); 

      PosLogFactory.Default.Verbose(
       "{0} ms spent on calling {1}" 
       , watch.Elapsed.TotalMilliseconds 
       , invocation.Method.Name 
       ); 
     } 
    } 

我使用這個攔截器獲得日誌關於我的服務調用的持續時間的信息。

我只想在從應用程序的某個部分調用服務時獲得它。 當從特定的類中調用服務時,是否有一個選項可以暫停攔截器日誌?

+0

我不相信有什麼內置DynamicProxy來做到這一點。你必須自己寫在攔截器內。 – PatrickSteele

回答

0

不,沒有內置的方法來做這樣的事情。