public static Type GetMatchingInterceptor(this PredefinedInterceptors interceptortype) { switch (interceptortype) { case PredefinedInterceptors.MethodTraceInterceptor: return(typeof(MethodTraceInterceptor)); case PredefinedInterceptors.TimeWatchInterceptor: return(typeof(TimeWatchInterceptor)); default: throw new ArgumentOutOfRangeException(nameof(interceptortype), interceptortype, null); } }
/// <inheritdoc /> public void With(PredefinedInterceptors predefinedInterceptor, InterceptionHookOption hookOption = InterceptionHookOption.MethodsAndSetProperties) { switch (predefinedInterceptor) { case PredefinedInterceptors.MethodTraceInterceptor: _container.InterceptWith <MethodTraceInterceptor>(_predicate, hookOption); break; case PredefinedInterceptors.TimeWatchInterceptor: _container.InterceptWith <TimeWatchInterceptor>(_predicate, hookOption); break; default: throw new ArgumentOutOfRangeException(nameof(predefinedInterceptor), predefinedInterceptor, null); } }
/// <inheritdoc /> public void RegisterInterceptor(PredefinedInterceptors predefinedInterceptor, LifeTime lifetime) { var interceptor = predefinedInterceptor.GetMatchingInterceptor(); _internalContainer.Register(interceptor, interceptor, _convertLifestyles[lifetime]); }