# ioc **Repository Path**: erdian718/ioc ## Basic Information - **Project Name**: ioc - **Description**: Package ioc provides a reflection-based dependency injection toolkit. - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-27 - **Last Updated**: 2025-10-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: ioc, DI ## README # IOC [![Go Reference](https://pkg.go.dev/badge/gitee.com/erdian718/ioc.svg)](https://pkg.go.dev/gitee.com/erdian718/ioc) Package ioc provides a reflection-based dependency injection toolkit. ## Feature * Support shared services and scoped services. * Support setting services to the scope. * Automatic cleanup. * Support concurrency. ## Usage ```go import "gitee.com/erdian718/ioc" func main() { provider, err := ioc.New(). Add(..., true). Add(..., false). Build() if err != nil { panic(err) } defer provider.Release() scope := provider.Create() defer scope.Release() s, err := ioc.Resolve[ServiceType](scope) if err != nil { panic(err) } // ... } ``` ## Note * Only `Provider.Create` method is goroutine safe.