Versions in this module Expand all Collapse all v1 v1.0.0 Jul 23, 2024 Changes in this version + type Container struct + func New(options ...Option) *Container + func (c *Container) Cleanup() + func (c *Container) Extract(target interface{}, options ...ExtractOption) (err error) + func (c *Container) Invoke(fn interface{}) error + type DefaultServiceProvider struct + func (d DefaultServiceProvider) GetGraph() string + func (d DefaultServiceProvider) GetService(refObject interface{}) (err error) + func (d DefaultServiceProvider) GetServiceByName(refObject interface{}, name string) (err error) + func (d DefaultServiceProvider) InvokeService(fn interface{}) error + type ExtractOption interface + func Name(name string) ExtractOption + type IServiceProvider interface + GetGraph func() string + GetService func(refObject interface{}) error + GetServiceByName func(refObject interface{}, name string) error + InvokeService func(fn interface{}) error + type IServiceProviderFactory interface + CreateServiceProvider func() IServiceProvider + type Option interface + func Bundle(options ...Option) Option + func Provide(provider interface{}, options ...ProvideOption) Option + type ParameterBag map[string]interface + type ProvideOption interface + func As(ifaces ...interface{}) ProvideOption + func Prototype() ProvideOption + func WithName(name string) ProvideOption + type ServiceCollection struct + func NewServiceCollection() *ServiceCollection + func (sc *ServiceCollection) AddServiceDescriptor(sd *ServiceDescriptor) + func (sc *ServiceCollection) AddSingleton(provider interface{}) + func (sc *ServiceCollection) AddSingletonAndName(name string, provider interface{}) + func (sc *ServiceCollection) AddSingletonByImplements(provider interface{}, implements interface{}) + func (sc *ServiceCollection) AddSingletonByImplementsAndName(name string, provider interface{}, implements interface{}) + func (sc *ServiceCollection) AddSingletonByName(name string, provider interface{}) + func (sc *ServiceCollection) AddSingletonByNameAndImplements(name string, provider interface{}, implements interface{}) + func (sc *ServiceCollection) AddTransient(provider interface{}) + func (sc *ServiceCollection) AddTransientByImplements(provider interface{}, implements interface{}) + func (sc *ServiceCollection) AddTransientByName(name string, provider interface{}) + func (sc ServiceCollection) Build() IServiceProvider + type ServiceDescriptor struct + Implements interface{} + Lifetime ServiceLifetime + Name string + Provider interface{} + func NewServiceDescriptor(name string, provider interface{}, implements interface{}, ...) *ServiceDescriptor + func NewServiceDescriptorByImplements(provider interface{}, implements interface{}, lifetime ServiceLifetime) *ServiceDescriptor + func NewServiceDescriptorByName(name string, provider interface{}, lifetime ServiceLifetime) *ServiceDescriptor + func NewServiceDescriptorByProvider(provider interface{}, lifetime ServiceLifetime) *ServiceDescriptor + type ServiceLifetime int32 + const Scoped + const Singleton + const Transient