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; } }
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; } }
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; } }