Exemple #1
0
        public IEnumerable <T> ResolveAll <T>(RegisterType type)
        {
            if (!LoaderCacheBase.ContainsType(typeof(T), type))
            {
                return(null);
            }
            switch (type)
            {
            case RegisterType.LazySingleton:
                return(LazySingletonLoaderCache <T> .Instanse.Select(e => e.Value).ToArray());

            case RegisterType.PerCall:
                return(PerCallLoaderCache <T> .Instanse.Select(e => e()).ToArray());

            case RegisterType.PerHttpRequest:
                return(PerHttpRequestLoaderCache <T> .GetValues());

            case RegisterType.PerThread:
                return(PerThreadLoaderCache <T> .Instanse.Select(e => e.Value).ToArray());

            case RegisterType.Singleton:
            default:
                return(SingletonLoaderCache <T> .Instanse.ToArray());
            }
        }
Exemple #2
0
        public T Resolve <T>(RegisterType type)
        {
            if (!LoaderCacheBase.ContainsType(typeof(T), type))
            {
                return(default(T));
            }
            switch (type)
            {
            case RegisterType.LazySingleton:
                return(LazySingletonLoaderCache <T> .Instanse.First().Value);

            case RegisterType.PerCall:
                return(PerCallLoaderCache <T> .Instanse.First()());

            case RegisterType.PerHttpRequest:
                return(PerHttpRequestLoaderCache <T> .GetValues().First());

            case RegisterType.PerThread:
                return(PerThreadLoaderCache <T> .Instanse.First().Value);

            case RegisterType.Singleton:
            default:
                return(SingletonLoaderCache <T> .Instanse.First());
            }
        }