コード例 #1
0
        public void Register <T>(Func <T> creator, RegisterType type = RegisterType.Singleton)
        {
            switch (type)
            {
            case RegisterType.LazySingleton:
                LazySingletonLoaderCache <T> .AddRegister(creator);

                break;

            case RegisterType.PerCall:
                PerCallLoaderCache <T> .AddRegister(creator);

                break;

            case RegisterType.PerHttpRequest:
                PerHttpRequestLoaderCache <T> .AddRegister(creator);

                break;

            case RegisterType.PerThread:
                PerThreadLoaderCache <T> .AddRegister(creator);

                break;

            case RegisterType.Singleton:
            default:
                SingletonLoaderCache <T> .AddRegister(creator());

                break;
            }
        }
コード例 #2
0
        public void Register <TSerivce, TImplementation>(RegisterType type = RegisterType.Singleton)
            where TImplementation : TSerivce
        {
            switch (type)
            {
            case RegisterType.LazySingleton:
                LazySingletonLoaderCache <TSerivce> .AddRegister(() => CreateCreatorFactory <TImplementation>()());

                break;

            case RegisterType.PerCall:
                PerCallLoaderCache <TSerivce> .AddRegister(() => CreateCreatorFactory <TImplementation>()());

                break;

            case RegisterType.PerHttpRequest:
                PerHttpRequestLoaderCache <TSerivce> .AddRegister(() => CreateCreatorFactory <TImplementation>()());

                break;

            case RegisterType.PerThread:
                PerThreadLoaderCache <TSerivce> .AddRegister(() => CreateCreatorFactory <TImplementation>()());

                break;

            case RegisterType.Singleton:
            default:
                SingletonLoaderCache <TSerivce> .AddRegister(CreateCreatorFactory <TImplementation>()());

                break;
            }
        }
コード例 #3
0
        public void Register <T>(RegisterType type = RegisterType.Singleton)
        {
            switch (type)
            {
            case RegisterType.LazySingleton:
                LazySingletonLoaderCache <T> .AddRegister(CreateCreatorFactory <T>());

                break;

            case RegisterType.PerCall:
                PerCallLoaderCache <T> .AddRegister(CreateCreatorFactory <T>());

                break;

            case RegisterType.PerHttpRequest:
                PerHttpRequestLoaderCache <T> .AddRegister(CreateCreatorFactory <T>());

                break;

            case RegisterType.PerThread:
                PerThreadLoaderCache <T> .AddRegister(CreateCreatorFactory <T>());

                break;

            case RegisterType.Singleton:
            default:
                SingletonLoaderCache <T> .AddRegister(CreateCreatorFactory <T>()());

                break;
            }
        }