using System; namespace OpenSEMI.Core.Container { public interface IContainer : IServiceProvider { void Register() where TImplementation : TService; void Register(bool singleton) where TImplementation : TService; void Register(Type implementation, bool singleton); void Register(Type implementation, Action callback, bool singleton); void Register(Type service, Type implementation, bool singleton); void Register(TService instance); T Resolve(); bool IsRegistered(); } }