IContainer.cs 774 B

123456789101112131415161718192021
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace OpenSEMI.Core.Container
  7. {
  8. public interface IContainer : IServiceProvider
  9. {
  10. void Register<TService, TImplementation>() where TImplementation : TService;
  11. void Register<TService, TImplementation>(bool singleton) where TImplementation : TService;
  12. void Register<TService>(Type implementation, bool singleton);
  13. void Register<TService>(Type implementation, Action<TService> callback, bool singleton);
  14. void Register(Type service, Type implementation, bool singleton);
  15. void Register<TService>(TService instance);
  16. T Resolve<T>();
  17. bool IsRegistered<T>();
  18. }
  19. }