Beispiel #1
0
        private Func <ILifeScope, object> MakeSingleton(IFactoryExpression factoryExpression)
        {
            var           lifeScope        = _singletonLifeScope.CreateNestedScope();
            Func <object> singletonFactory = () => factoryExpression.Compile <object>().Invoke(lifeScope);
            var           singleton        = new LazyWithoutExceptionCaching <object>(singletonFactory);

            return(transientLifeScope => singleton.Value);
        }
        public EasyCachingProviderFallbackDecorator(
            Func <TProvider> cachingProviderFactory,
            TProvider fallbackCachingProvider,
            Func <Exception, bool> exceptionFilter)
        {
            if (cachingProviderFactory == null)
            {
                throw new ArgumentNullException(nameof(cachingProviderFactory));
            }
            _lazyCachingProvider = new LazyWithoutExceptionCaching <TProvider>(cachingProviderFactory);

            _exceptionFilter         = exceptionFilter ?? (_ => true);
            _fallbackCachingProvider = fallbackCachingProvider ?? throw new ArgumentNullException(nameof(fallbackCachingProvider));
        }
        public EasyCachingProviderPolicyDecorator(
            Func <TProvider> cachingProviderFactory,
            Policy initPolicy,
            Policy syncExecutePolicy,
            AsyncPolicy asyncExecutePolicy)
        {
            if (cachingProviderFactory == null)
            {
                throw new ArgumentNullException(nameof(cachingProviderFactory));
            }
            _lazyCachingProvider = new LazyWithoutExceptionCaching <TProvider>(cachingProviderFactory);

            _initPolicy         = initPolicy ?? throw new ArgumentNullException(nameof(initPolicy));
            _syncExecutePolicy  = syncExecutePolicy ?? throw new ArgumentNullException(nameof(syncExecutePolicy));
            _asyncExecutePolicy = asyncExecutePolicy ?? throw new ArgumentNullException(nameof(asyncExecutePolicy));
        }
        public EasyCachingBusPolicyDecorator(
            string name,
            Func <IEasyCachingBus> busFactory,
            Policy <IEasyCachingBus> initPolicy = null,
            Policy syncExecutePolicy            = null,
            AsyncPolicy asyncExecutePolicy      = null,
            AsyncPolicy subscribePolicy         = null)
        {
            Name = name ?? throw new ArgumentNullException(nameof(name));

            if (busFactory == null)
            {
                throw new ArgumentNullException(nameof(busFactory));
            }
            _lazyBusProvider = new LazyWithoutExceptionCaching <IEasyCachingBus>(busFactory);

            _initPolicy         = initPolicy;
            _syncExecutePolicy  = syncExecutePolicy;
            _asyncExecutePolicy = asyncExecutePolicy;
            _subscribePolicy    = subscribePolicy;
        }