我正在學習與Ninject一起使用Interceptor模式。調試攔截器模式
我有一個攔截器如下。
public class MyInterceptor:IInterceptor
{
public void Intercept(IInvocation invocation)
{
Console.WriteLine("Pre Execute: " + invocation.Request.Method.Name);
invocation.Proceed();
Console.WriteLine("Post Execute: " + invocation.Request.Method.Name);
Console.WriteLine("Returned: " + invocation.ReturnValue);
}
}
我在我的Main方法中設置了我的Ninject內核,如下所示。
kernel = new StandardKernel();
kernel.Bind<MyClass>().ToSelf().Intercept().With(new MyInterceptor());
myClass = kernel.Get<MyClass>();
問題是,調試方法調用myClass
,(我把在一份聲明中破發點狀myClass.methodName()
並按F11)有堆棧幀的很多傳球,之前我看到了呼叫時到我的攔截器,然後到實際的方法調用。
我也知道Ninject創建動態代理.etc。在幕後,但是這會讓事情變得更加困難,如果我想看看我的代碼的流程,從所有的攔截器到實際的方法。 (想象一下,調試,看看哪個攔截器阻塞的方法調用)
有沒有辦法告訴Visual Studio中沒有對Ninject堆棧幀突破? (我沒有Ninject源跟我反正)
UPDATE 從本質上講,我想要做的就是告訴VS不上碼打破我沒有源...