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);
            }
        }
示例#3
0
        /// <inheritdoc />
        public void RegisterInterceptor(PredefinedInterceptors predefinedInterceptor, LifeTime lifetime)
        {
            var interceptor = predefinedInterceptor.GetMatchingInterceptor();

            _internalContainer.Register(interceptor, interceptor, _convertLifestyles[lifetime]);
        }