Shuttle.Core.DependencyInjection
20.0.0
Prefix Reserved
dotnet add package Shuttle.Core.DependencyInjection --version 20.0.0
NuGet\Install-Package Shuttle.Core.DependencyInjection -Version 20.0.0
<PackageReference Include="Shuttle.Core.DependencyInjection" Version="20.0.0" />
paket add Shuttle.Core.DependencyInjection --version 20.0.0
#r "nuget: Shuttle.Core.DependencyInjection, 20.0.0"
// Install Shuttle.Core.DependencyInjection as a Cake Addin #addin nuget:?package=Shuttle.Core.DependencyInjection&version=20.0.0 // Install Shuttle.Core.DependencyInjection as a Cake Tool #tool nuget:?package=Shuttle.Core.DependencyInjection&version=20.0.0
Shuttle.Core.DependencyInjection
PM> Install-Package Shuttle.Core.DependencyInjection
Add components to IServiceCollection
by convention:
IServiceCollection services = new ServiceCollection();
services
.FromAssembly(assembly)
.Add();
The above would be the simplest case and adds all types using either a matching interface (with the same name as the class prefixed with I
) or the first interface found. The default service lifetime is Singleton
.
In order to filter the types add a Filter
function:
IServiceCollection services = new ServiceCollection();
services
.FromAssembly(assembly)
.Filter(type => type.Name.Equals("FilteredType", StringComparison.InvariantCultureIgnoreCase))
.Add();
If a particular interface should be used for a selected type it may be specified as follows:
IServiceCollection services = new ServiceCollection();
services
.FromAssembly(assembly)
.GetServiceType(type => typeof(ISomeInterface))
.Add();
The service lifetime may also be specified:
IServiceCollection services = new ServiceCollection();
services
.FromAssembly(assembly)
.GetServiceLifetime(type => ServiceLifetime.Transient)
.Add();
Since this is a builder interface all the bits may be used in combination:
IServiceCollection services = new ServiceCollection();
services
.FromAssembly(assembly)
.Filter(type => type.Name.Equals("FilteredType", StringComparison.InvariantCultureIgnoreCase))
.GetServiceType(type => typeof(ISomeInterface))
.GetServiceLifetime(type => ServiceLifetime.Transient)
.Add();
Product | Versions 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
-
- Microsoft.Extensions.DependencyInjection (>= 8.0.1)
- Shuttle.Core.Contract (>= 20.0.0)
- Shuttle.Core.Reflection (>= 20.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Shuttle.Core.DependencyInjection:
Package | Downloads |
---|---|
Shuttle.Esb.Scheduling
Scheduling solution built on Shuttle.Esb. |
GitHub repositories
This package is not used by any popular GitHub repositories.