Bnaya.Extensions.DependencyInjection 1.1.54

dotnet add package Bnaya.Extensions.DependencyInjection --version 1.1.54                
NuGet\Install-Package Bnaya.Extensions.DependencyInjection -Version 1.1.54                
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="Bnaya.Extensions.DependencyInjection" Version="1.1.54" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Bnaya.Extensions.DependencyInjection --version 1.1.54                
#r "nuget: Bnaya.Extensions.DependencyInjection, 1.1.54"                
#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 Bnaya.Extensions.DependencyInjection as a Cake Addin
#addin nuget:?package=Bnaya.Extensions.DependencyInjection&version=1.1.54

// Install Bnaya.Extensions.DependencyInjection as a Cake Tool
#tool nuget:?package=Bnaya.Extensions.DependencyInjection&version=1.1.54                

Dependency Injection Extensions

Build & Deploy NuGet

NuGet

Keyed Dependency Injection using .NET

You can register your components as:

builder.Services.AddKeyedSingleton<IFunctionality, AFunctionality>("A");
builder.Services.AddKeyedSingleton<IFunctionality, BFunctionality>("B");

And use it as follow:

[ApiController]
[Route("[controller]")]
public class TestController : ControllerBase
{
    private readonly IKeyed<IFunctionality> _selector;

    public TestController(IKeyed<IFunctionality> selector)
    {
        _selector = selector;
    }

    [HttpGet("a")]
    public string GetA()
    {
        return _selector["A"].Id; // throw if "A" not registered
    }

    [HttpGet("b")]
    public string GetB()
    {
        if(_selector.TryGet("B", out IFunctionality val))
            return val.Id;
        return "Not registered";
    }
}
Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Bnaya.Extensions.DependencyInjection:

Package Downloads
EventSourcing.Backbone.Abstractions

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.1.54 6,660 5/11/2023
1.1.53 138 5/11/2023
1.1.52 139 5/11/2023
1.1.50 134 5/11/2023
1.1.49 134 5/11/2023