DiComposite 1.0.1
dotnet add package DiComposite --version 1.0.1
NuGet\Install-Package DiComposite -Version 1.0.1
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="DiComposite" Version="1.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DiComposite --version 1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: DiComposite, 1.0.1"
#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 DiComposite as a Cake Addin
#addin nuget:?package=DiComposite&version=1.0.1
// Install DiComposite as a Cake Tool
#tool nuget:?package=DiComposite&version=1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
DiComposite
Composite pattern for Microsoft.Extensions.DependencyInjection
How to use
- using the
IServiceCollection.Composite()
method
interface IHigherOrderService {}
class HigherOrderService
{
public HigherOrderService(IService service)
{
// Debug.Assert(service is CompositeService)
}
}
class CompositeService : IService
{
public CompositeService(params IService[] services) {}
}
var services = new ServiceCollection();
services.AddSingleton<IService>(new ServiceA());
services.AddScoped<IService, ServiceB>();
services.AddTransient<IService>(sp => new ServiceC());
services.Composite<IService, CompositeService>();
- using the
IComposite
interface and theIServiceCollection.IComposite()
method
interface IHigherOrderService {}
class HigherOrderService
{
public HigherOrderService(IComposite<IService> composite)
{
// Debug.Assert(composite.Value is CompositeService)
}
}
class CompositeService : IService
{
public CompositeService(params IService[] services) {}
}
var services = new ServiceCollection();
services.AddSingleton<IService>(new ServiceA());
services.AddScoped<IService, ServiceB>();
services.AddTransient<IService>(sp => new ServiceC());
services.IComposite<IService, CompositeService>();
Product | Versions 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 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.
-
net6.0
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.