Swallow.ChainOfInjection.ServiceCollection 4.0.0

dotnet add package Swallow.ChainOfInjection.ServiceCollection --version 4.0.0                
NuGet\Install-Package Swallow.ChainOfInjection.ServiceCollection -Version 4.0.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Swallow.ChainOfInjection.ServiceCollection" Version="4.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Swallow.ChainOfInjection.ServiceCollection --version 4.0.0                
#r "nuget: Swallow.ChainOfInjection.ServiceCollection, 4.0.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Swallow.ChainOfInjection.ServiceCollection as a Cake Addin
#addin nuget:?package=Swallow.ChainOfInjection.ServiceCollection&version=4.0.0

// Install Swallow.ChainOfInjection.ServiceCollection as a Cake Tool
#tool nuget:?package=Swallow.ChainOfInjection.ServiceCollection&version=4.0.0                


Behind the quite ominous name is hiding a very generic and abstract way of registering a structure that resembles a Chain of Responsibility to any DI-container, like Simple Injector or ServiceCollection.

The package in Swallow.ChainOfInjection defines the way it is supposed to work - but that is not enough! In order to use this functionality, you need to provide a specific configurator for the DI-container of your choice. You can find examples of exactly this for SimpleInjector and the IServiceCollection, if you'd like an example.

The original concept came from this really helpful Answer on StackOverflow, but I've changed quite a lot of it to make it generic and less "Expression"-y. The general idea, however, remains the same.


Swallow.ChainOfInjection is licensed under the MIT license. That means you can do whatever you like with it, as long as you give credit by including the library's license when distributing your software.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
4.0.0 98 1/20/2024
3.0.0 305 1/22/2023
2.1.0 5,724 11/21/2021