Devseesharp.KeyedServices.Extensions.Microsoft.DependencyInjection
1.0.1
dotnet add package Devseesharp.KeyedServices.Extensions.Microsoft.DependencyInjection --version 1.0.1
NuGet\Install-Package Devseesharp.KeyedServices.Extensions.Microsoft.DependencyInjection -Version 1.0.1
<PackageReference Include="Devseesharp.KeyedServices.Extensions.Microsoft.DependencyInjection" Version="1.0.1" />
paket add Devseesharp.KeyedServices.Extensions.Microsoft.DependencyInjection --version 1.0.1
#r "nuget: Devseesharp.KeyedServices.Extensions.Microsoft.DependencyInjection, 1.0.1"
// Install Devseesharp.KeyedServices.Extensions.Microsoft.DependencyInjection as a Cake Addin #addin nuget:?package=Devseesharp.KeyedServices.Extensions.Microsoft.DependencyInjection&version=1.0.1 // Install Devseesharp.KeyedServices.Extensions.Microsoft.DependencyInjection as a Cake Tool #tool nuget:?package=Devseesharp.KeyedServices.Extensions.Microsoft.DependencyInjection&version=1.0.1
Keyed Service Resolver
A extension that injects a wrapper that can resolve services by key
Install directly with..
Package Manager
Install-Package Devseesharp.KeyedServices.Extensions.Microsoft.DependencyInjection
.NET CLI
dotnet add package Devseesharp.KeyedServices.Extensions.Microsoft.DependencyInjection
Or visit nuget.org
nuget.org/packages/Devseesharp.KeyedServices.Extensions.Microsoft.DependencyInjection
Features
- Resolve services by key
- Register services by key fast and easy
- Wide compatibility with .Net Standard 2.1
Getting started
First register your services with scope of choice. Then you register the resolver IKeyedResolver<TKey,TService> using the AddKeyedServiceFactory() extension.
using Devseesharp.KeyedServices.Extensions.Microsoft.DependencyInjection;
// #1
services.AddTransient<TestService1>();
services.AddTransient<TestService2>();
// #2
services.AddKeyedServiceFactory<FakeEnumKeys, ITestService>(provider => key =>
{
return key switch
{
FakeEnumKeys.Key1 => provider.GetRequiredService<TestService1>() as ITestService,
FakeEnumKeys.Key2 => provider.GetRequiredService<TestService2>(),
_ => throw new KeyNotFoundException()
};
}, ServiceLifetime.Scoped);
Later when you want to get the service by key, you inject the IKeyedServiceResolver<TKey,TService> into your object and call the method Get(TKey), that will then resolve your service.
using Devseesharp.KeyedServices;
public class DevseesharpService
{
private ITestService _fakeService2;
public DevseesharpService(IKeyedServiceResolver<FakeEnumKeys, ITestService> keyedServiceResolver)
{
_fakeService2 = keyedServiceResolver.Get(FakeEnumKeys.Key2);
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Devseesharp.KeyedServices.KeyedResolver (>= 1.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 6.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.