CoreDX.Extensions.DependencyInjection 8.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package CoreDX.Extensions.DependencyInjection --version 8.0.0                
NuGet\Install-Package CoreDX.Extensions.DependencyInjection -Version 8.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="CoreDX.Extensions.DependencyInjection" Version="8.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add CoreDX.Extensions.DependencyInjection --version 8.0.0                
#r "nuget: CoreDX.Extensions.DependencyInjection, 8.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 CoreDX.Extensions.DependencyInjection as a Cake Addin
#addin nuget:?package=CoreDX.Extensions.DependencyInjection&version=8.0.0

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

About

Add service provider that supported service type is provided as argument in parameter of factory.

How to Use

ServiceCollection services = new ();

// Get service type from implementation factory.
services.AddScoped(typeof(IB<>, (provider, requestServiceType) =>
{
    var closedType = typeof(B<>).MakeGenericType(type.GenericTypeArguments);
    return sp.GetService(closedType);
});

// Forward an open generic service to another open generic service.
services.AddScopedForward(typeof(IA<>), typeof(IB<>));

using ServiceProvider provider = services.BuildServiceProvider();

var a = provider.GetService<IA<int>>();
var b = provider.GetService<IB<int>>();


public interface IA<T>;

public interface IB<T> : IA<T>;

public class B<T> : IB<T>;

Main Types

The main types provided by this library are:

  • CoreDX.Extensions.DependencyInjection.TypedImplementationFactoryServiceProvider
  • CoreDX.Extensions.DependencyInjection.TypedImplementationFactoryServiceProviderFactory
  • CoreDX.Extensions.DependencyInjection.ServiceCollectionForwardServiceExtensions
  • CoreDX.Extensions.DependencyInjection.Abstractions
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  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 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 (4)

Showing the top 4 NuGet packages that depend on CoreDX.Extensions.DependencyInjection:

Package Downloads
CoreDX.Extensions.DependencyInjection.Hosting.Proxies.Abstractions

Add generic host extensions for CoreDX.Extensions.DependencyInjection.Hosting.Proxies.ProxyTypedImplementationFactoryServiceProviderFactory.

CoreDX.Extensions.DependencyInjection.Hosting.Abstractions

Add generic host extensions for CoreDX.Extensions.DependencyInjection.

CoreDX.Extensions.DependencyInjection.Hosting

Add generic host extensions for CoreDX.Extensions.DependencyInjection.

CoreDX.Extensions.DependencyInjection.Hosting.Proxies

Add generic host extensions for CoreDX.Extensions.DependencyInjection.Hosting.Proxies.ProxyTypedImplementationFactoryServiceProviderFactory.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
9.0.0 116 11/23/2024
8.0.0.2 199 4/18/2024
8.0.0.1 158 4/17/2024
8.0.0 164 4/16/2024