Yozian.DependencyInjectionPlus
8.1.0
dotnet add package Yozian.DependencyInjectionPlus --version 8.1.0
NuGet\Install-Package Yozian.DependencyInjectionPlus -Version 8.1.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="Yozian.DependencyInjectionPlus" Version="8.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Yozian.DependencyInjectionPlus --version 8.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Yozian.DependencyInjectionPlus, 8.1.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 Yozian.DependencyInjectionPlus as a Cake Addin #addin nuget:?package=Yozian.DependencyInjectionPlus&version=8.1.0 // Install Yozian.DependencyInjectionPlus as a Cake Tool #tool nuget:?package=Yozian.DependencyInjectionPlus&version=8.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Make Dependency Injection Easily
Features
- Write Once, Register all.
- Register services globally which decorated by attributes(TransientService, ScopedService, SingletonService)
- Auto register service with implement Type also with provided interfaces.
- Register services for specify assembly.
- Service's type filter while regstering.
- Register method is an extension method on IServiceColletion
- Register services with specify environments
Example
Register for once
// sample for .net core
public void ConfigureServices(IServiceCollection services)
{
// just choose one of them to fit your scenario
// 1. register services
services.RegisterServices();
// 2. register services only in those assmbly name start with "DependencyInjectionSample"
services.RegisterServices("DependencyInjectionSample");
// 3. register services and has some condition
services.RegisterServices("", type =>
{
return type.Name.Contains("Service");
});
// 4. regiter services for specify assembly
services.RegisterServicesOfAssembly(new { }.GetType().Assembly);
}
Decorated Service
[TransientService]
public class DemoService
{
public void ShowTime()
{
Console.WriteLine(DateTime.Now.ToString());
}
}
[ScopedService]
public class DemoService
{
public void ShowTime()
{
Console.WriteLine(DateTime.Now.ToString());
}
}
[SingletonService]
public class DemoService
{
public void ShowTime()
{
Console.WriteLine(DateTime.Now.ToString());
}
}
Decoreated service with interfaces
Provide one or more interface types
[ScopedService(typeof(IWorker), typeof(IDriver))]
public class WorkService : IWorker, IDriver
{
public void DoWork()
{
Console.WriteLine(nameof(this.DoWork));
}
public void Drive() => throw new NotImplementedException();
}
Decoreated service with actived Environments
Register only in Developement & Staging environment(by Environment variable "ASPNETCORE_ENVIRONMENT")
[ScopedService("Developement,Staging")]
public class WorkService : IWorker, IDriver
{
public void DoWork()
{
Console.WriteLine(nameof(this.DoWork));
}
public void Drive() => throw new NotImplementedException();
}
Output registered types in STD out
DependencyInjectionSample project shows
Register Transient Services , Total: 1
[ConcretType : SerivceTypes]
(1) DemoService: DemoService
Register Scoped Services , Total: 1
[ConcretType : SerivceTypes]
(1) WorkService: WorkService, IWorker
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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
- Microsoft.Extensions.DependencyInjection (>= 1.1.0 && < 9.0.0)
- Microsoft.Extensions.Logging (>= 3.1.0 && < 9.0.0)
- Yozian.Extension (>= 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.
Version | Downloads | Last updated |
---|---|---|
8.1.0 | 248 | 7/13/2024 |
8.0.1 | 146 | 3/7/2024 |
8.0.1-preview | 115 | 11/16/2023 |
6.0.0 | 2,497 | 4/16/2022 |
5.0.2 | 723 | 3/11/2021 |
5.0.2-preview | 282 | 3/11/2021 |
5.0.1 | 363 | 3/11/2021 |
5.0.0 | 425 | 12/1/2020 |
3.0.2 | 549 | 2/6/2020 |
3.0.0-preview | 367 | 12/8/2019 |
1.0.6 | 508 | 5/10/2020 |
1.0.5 | 904 | 1/20/2019 |
1.0.4 | 847 | 1/16/2019 |
1.0.3 | 854 | 1/14/2019 |
1.0.0 | 840 | 1/11/2019 |