Injectio 1.0.28
See the version list below for details.
dotnet add package Injectio --version 1.0.28
NuGet\Install-Package Injectio -Version 1.0.28
<PackageReference Include="Injectio" Version="1.0.28" />
paket add Injectio --version 1.0.28
#r "nuget: Injectio, 1.0.28"
// Install Injectio as a Cake Addin #addin nuget:?package=Injectio&version=1.0.28 // Install Injectio as a Cake Tool #tool nuget:?package=Injectio&version=1.0.28
Injectio
Source generator that automatically registers discovered services in the dependency injection container
Features
- Transient, Singleton, Scoped service registration
- Factory registration
- Module registration
- Duplicate Strategy - Skip,Replace,Append
- Registration Strategy - Self, Implemented Interfaces, Self With Interfaces
Usage
Add package
Add the nuget package project to your projects.
dotnet add package Injectio
Prevent dependances from including Injectio
<PackageReference Include="Injectio" PrivateAssets="all" />
Attributes
Place registration attribute on class. The class will be discovered and regirsted.
Singleton services
[RegisterSingleton]
public class SingletonService : IService { }
Explicit service type
[RegisterSingleton(ServiceType = typeof(IService))]
public class SingletonService : IService { }
Scoped Services
[RegisterScoped]
public class ScopedService : IService { }
Transient Services
[RegisterTransient]
public class TransientService : IService { }
Factories
[RegisterTransient(ServiceType = typeof(IService), Factory = nameof(ServiceFactory))]
public class FactoryService : IService
{
public static object ServiceFactory(IServiceProvider serviceProvider)
{
return new FactoryService1();
}
}
Register Method
When the service registration is complex, use the RegisterServices
attribute on a method that has a parameter of IServiceCollection
or ServiceCollection
public class RegistrationModule
{
[RegisterServices]
public static void Register(IServiceCollection services)
{
services.TryAddTransient<IModuleService, ModuleService>();
}
}
Add to container
The source generator creates an extension method with all the discovered services registered. Call the generated extension method to add the services to the container. The method will be called Add[AssemblyName]
. The assemlby name will have the dots removed.
var services = new ServiceCollection();
services.AddInjectioTestsConsole();
Override the extension method name by using the InjectioName
MSBuild property.
<PropertyGroup>
<InjectioName>Library</InjectioName>
</PropertyGroup>
var services = new ServiceCollection();
services.AddLibrary();
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. |
-
.NETStandard 2.0
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Injectio:
Package | Downloads |
---|---|
NoeticTools.Git2SemVer.Core
Package Description |
GitHub repositories (2)
Showing the top 2 popular GitHub repositories that depend on Injectio:
Repository | Stars |
---|---|
LykosAI/StabilityMatrix
Multi-Platform Package Manager for Stable Diffusion
|
|
loresoft/EntityFrameworkCore.Generator
Generate Entity Framework Core model from an existing database
|
Version | Downloads | Last updated |
---|---|---|
4.0.0 | 3,258 | 11/14/2024 |
3.3.0 | 10,230 | 9/7/2024 |
3.2.0 | 236 | 9/5/2024 |
3.1.0 | 50,332 | 12/5/2023 |
3.0.1 | 585 | 11/29/2023 |
3.0.0 | 290 | 11/24/2023 |
3.0.0-beta.3 | 76 | 11/21/2023 |
3.0.0-beta.2 | 73 | 11/16/2023 |
3.0.0-beta.1 | 67 | 11/16/2023 |
2.7.0 | 2,555 | 10/25/2023 |
2.6.2 | 5,289 | 8/9/2023 |
2.6.1 | 512 | 7/29/2023 |
2.6.0 | 132 | 7/29/2023 |
2.5.87 | 5,088 | 3/25/2023 |
2.5.65 | 4,612 | 1/30/2023 |
2.0.54 | 1,256 | 1/2/2023 |
2.0.52 | 262 | 1/2/2023 |
2.0.43 | 337 | 12/28/2022 |
1.0.33 | 1,019 | 10/25/2022 |
1.0.30 | 358 | 10/24/2022 |
1.0.28 | 339 | 10/22/2022 |
1.0.25 | 333 | 10/21/2022 |
1.0.23 | 403 | 10/20/2022 |
1.0.20 | 364 | 10/20/2022 |
1.0.18 | 362 | 10/20/2022 |
1.0.16 | 348 | 10/5/2022 |
1.0.14 | 350 | 10/5/2022 |
1.0.12 | 353 | 10/5/2022 |
1.0.10 | 332 | 10/4/2022 |
1.0.8 | 423 | 9/25/2022 |