ByteDev.Ioc.MsExtDi
1.0.2
See the version list below for details.
dotnet add package ByteDev.Ioc.MsExtDi --version 1.0.2
NuGet\Install-Package ByteDev.Ioc.MsExtDi -Version 1.0.2
<PackageReference Include="ByteDev.Ioc.MsExtDi" Version="1.0.2" />
paket add ByteDev.Ioc.MsExtDi --version 1.0.2
#r "nuget: ByteDev.Ioc.MsExtDi, 1.0.2"
// Install ByteDev.Ioc.MsExtDi as a Cake Addin #addin nuget:?package=ByteDev.Ioc.MsExtDi&version=1.0.2 // Install ByteDev.Ioc.MsExtDi as a Cake Tool #tool nuget:?package=ByteDev.Ioc.MsExtDi&version=1.0.2
ByteDev.Ioc.MsExtDi
Collection of extensions for Microsoft Extensions DI.
Installation
ByteDev.Ioc.MsExtDi has been written as a .NET Standard 2.0 library, so you can consume it from a .NET Core or .NET Framework 4.6.1 (or greater) application.
ByteDev.Ioc.MsExtDi is hosted as a package on nuget.org. To install from the Package Manager Console in Visual Studio run:
Install-Package ByteDev.Ioc.MsExtDi
Further details can be found on the nuget page.
Code
The repo can be cloned from git bash:
git clone https://github.com/ByteDev/ByteDev.Ioc.MsExtDi
Usage
Create installer class
This is to register your classes with and configure any settings. The class should implement IServiceInstaller.
Example:
public class FoobarInstaller : IServiceInstaller
{
public void Install(IServiceCollection services, IConfiguration configuration)
{
services.AddSingleton<IFoobar, Foobar>();
services.ConfigureSettings<FoobarSettings>(configuration);
}
}
Install the installers
// Use ConfigurationBuilder or AppConfigurationBuilder to create a IConfiguration
var serviceCollection = new ServiceCollection();
serviceCollection.InstallFromAssemblyContaining<FoobarInstaller>(configuration);
Inject class dependencies / resolve dependencies
To resolve a registered dependency using service locator (anti)pattern:
IServiceProvider provider = serviceCollection.BuildServiceProvider();
var foobar = provider.GetService<IFoobar>();
Further examples can be seen in the Unit and Integration test projects.
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 | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
- Microsoft.Extensions.Configuration (>= 2.0.0)
- Microsoft.Extensions.DependencyInjection (>= 2.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 2.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.