using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; 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(); } }