using System; using System.Collections.Generic; namespace SmallInjector { /// /// DI Container /// public interface IContainer { /// /// Register types in the resolve container. /// /// Type of the service. /// Type of the interface of the service. /// True if the service should be singleton. False otherwise. /// instance of the service void RegisterType(bool isSingleton, TService instance = default) where TService : TInterface; /// /// Register types in the resolve container. /// void RegisterType(bool isSingleton, TService instance = default); /// /// Resolve service of specified type. /// object Resolve(Type serviceType); /// /// Resolve service of specified type. /// TService Resolve(); /// /// Returns true, if the service is registered. False otherwise. /// bool IsRegistered(); /// /// Returns true, if the service is registered. False otherwise. /// bool IsRegistered(Type serviceType); /// /// Resolve any implementation /// IEnumerable ResolveAny(Type serviceType); /// /// Resolve any implementation /// IEnumerable ResolveAny(); } }