https://github.com/visualstudioex3/argos.framework.serviceinjector
A simple and lightweight Service Injection library for .NET, developed just for fun.
https://github.com/visualstudioex3/argos.framework.serviceinjector
argos-framework csharp dependency-injection dotnet dotnet5 ioc net5
Last synced: 5 months ago
JSON representation
A simple and lightweight Service Injection library for .NET, developed just for fun.
- Host: GitHub
- URL: https://github.com/visualstudioex3/argos.framework.serviceinjector
- Owner: VisualStudioEX3
- License: mit
- Created: 2021-12-10T13:53:53.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-12-29T01:03:36.000Z (about 4 years ago)
- Last Synced: 2025-02-27T07:57:24.495Z (about 1 year ago)
- Topics: argos-framework, csharp, dependency-injection, dotnet, dotnet5, ioc, net5
- Language: C#
- Homepage:
- Size: 28.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Argos.Framework.ServiceInjector
© Visual Studio EX3, José Miguel Sánchez Fernández - 2021
### A simple and lightweight service injector library for .NET.
[](https://github.com/VisualStudioEX3/Argos.Framework.ServiceInjector/actions/workflows/main.yml)
[](https://opensource.org/licenses/MIT)
[](https://github.com/VisualStudioEX3/Argos.Framework.ServiceInjector/releases/)
A simple to use and setup dependency injection system to use in .NET projects:
- Supports normal and singleton instance services.
- Supports for generic services.
- Service initialization on request.
- Checks and validates service contracts when register them instead when request them. This allow to catch invalid contracts before request the services.
- Supports services with nested services, declaring them in the service constructor as parameters.
- Supports resolve dependencies from other service providers. You can setup the service providers that a service container use to resolve dependencies.
- Ease the implementation and initialization of service containers as service providers using our abstract implementation.
- Supports to implements custom service containers. This allow modifications on the inner behaviour of the service injector (implements your own service container implementation or mapping other service injector systems) and allow to keep your code without change it, using the same functions like the default ones.
The initial goal to develop this project was the challenge to understand the inner complexity of a dependency injection system (simple curiosity), and to improve my knowledge of reflexion and generic types in .NET (and, also, I developed it just for fun).
Was developed in **.NET 5** and, a previous developed version was tested in [Artemis](https://github.com/VisualStudioEX3/Artemis) project, a little **Unity 2021** game for a job interview.
## TODO
- Write a simple documentation (maybe using [Doc FX](https://github.com/dotnet/docfx) or simply write a simple wiki).
- Autopublish on NuGet on sucessfull commits to master branch.
- Improve this README.md content.