public async Task InterceptionTestV2() { //Configuration var count = 0; TraceData[] traceReceived = { }; using (var tracer = new TraceSourceSync(new TraceConfig { TraceBehavior = TraceStaticBehavior.AddListenerToStaticAccessAndRemoveDefaultTracer, PageSize = 2 })) { _container.RegisterInstance(tracer); _container.RegisterInterceptor <InterceptorTraceInjectTracer>(LifeTime.Singleton); _container.RegisterInterceptor <InterceptorTraceStatic>(LifeTime.Singleton); _container.Register <IClassVoidTest, ClassVoidTest>(LifeTime.Singleton); _container.InterceptAny(type => type.Name.Contains("lassVoidT")).With <InterceptorTraceInjectTracer>(); _container.InterceptAny(type => type.Name.Contains("lassVoidT")).With <InterceptorTraceStatic>(); tracer.OnTracesSent += trace => { traceReceived = trace; Interlocked.Increment(ref count); }; //Test var instance = _container.Resolve <IClassVoidTest>(); instance.MethodCall(); //Verify await tracer.FlushAndCompleteAddingAsync().ConfigureAwait(false); } // un seul retour (avec les deux traces des intercepteurs) Assert.AreEqual(1, count); Assert.IsNotNull(traceReceived.Single(o => o.Message == "IClassVoidTest_InterceptorTraceInjectTracer")); Assert.IsNotNull(traceReceived.Single(o => o.Message == "IClassVoidTest_InterceptorTraceStatic")); }