Branch | DevOps |
---|---|
Master | |
Develop |
This repository builds on Microsoft.Extensions.DependencyInjection.Abstractions
to provide additional features, which currently are:
- Named Services
- Child Containers
It also provides a seperate (and optional) nuget package called Dazinator.Extensions.DependencyInjection.Microsoft
which basically contains a copy of the native MS ServiceProvider
but with some changes as published here: dotnet/runtime#45497
Allows you to register services that can be resolved by name. Note: In dotnet 8, microsoft have now added a feature to allow you to resolve services by name. However if you are using dotnet 6 or below, you can use this package to achieve the same thing.
For more detailed docs see here
Allows you to define modules that can be used to configure services in a modular way. For more detailed docs see here
For more detailed docs see here
Allows you to configure "child containers" using the normal IServiceCollection
interface.
The child service provider can be implemented by your conforming container
of choice i.e Autofac, Structuremap, Microsoft DI - any DI package that supports IServiceProvider.
It means, thanks to a standard interface for building / configuring child containers, you can take a DI container library that doesn't have a child container feature, (like I did with Microsofts) and create "child containers" with it! The caveat is that:
- Your DI container of choice must support building a container from an `IServiceCollection` or IEnumerable<ServiceDescriptor>`
If you are interested in that, look at the tests for ChildServiceCollection
For docs, see here
Build composable, inspectable execution pipelines with dependency injection support. For more detailed docs see here