/// <summary> /// Registers the specified instance. /// </summary> /// <typeparam name="T">The of the instance to register.</typeparam> /// <param name="instance">The instance.</param> /// <param name="scope">The scope.</param> /// <param name="serviceName">Name of the service.</param> public void Register <T>(Func <IInjectionContainer, T> instance, Injection.Scope scope = Injection.Scope.Transient, string serviceName = "") { if (scope == Injection.Scope.Singleton) { this.container.Register <T>(factory => instance(this), serviceName, new PerContainerLifetime()); } else { this.container.Register(factory => instance(this), serviceName); } }
/// <summary> /// Registers the specified scope. /// </summary> /// <typeparam name="T">Interface to register</typeparam> /// <param name="scope">The scope.</param> public void Register <T>(Injection.Scope scope) { if (scope == Injection.Scope.Singleton) { this.container.Register <T>(new PerContainerLifetime()); } else { this.container.Register <T>(); } }
/// <summary> /// Registers the specified service type. /// </summary> /// <param name="serviceType">Type of the service.</param> /// <param name="implementation">The implementation of the service.</param> /// <param name="scope">The scope.</param> public void Register(Type serviceType, Type implementation, Injection.Scope scope) { if (scope == Injection.Scope.Singleton) { this.container.Register(serviceType, implementation, new PerContainerLifetime()); } else { this.container.Register(serviceType, implementation); } }
/// <summary> /// Registers the specified service name. /// </summary> /// <typeparam name="T">Type of the service to register</typeparam> /// <typeparam name="TImplementation">The type of the implementation.</typeparam> /// <param name="serviceName">Name of the service.</param> /// <param name="scope">The scope.</param> public void Register <T, TImplementation>(string serviceName, Injection.Scope scope) where TImplementation : T { if (scope == Injection.Scope.Singleton) { this.container.Register <T, TImplementation>(serviceName, new PerContainerLifetime()); } else { this.container.Register <T, TImplementation>(serviceName); } }