AterraEngine.DependencyInjection.Generators
1.2.0
See the version list below for details.
dotnet add package AterraEngine.DependencyInjection.Generators --version 1.2.0
NuGet\Install-Package AterraEngine.DependencyInjection.Generators -Version 1.2.0
<PackageReference Include="AterraEngine.DependencyInjection.Generators" Version="1.2.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add AterraEngine.DependencyInjection.Generators --version 1.2.0
#r "nuget: AterraEngine.DependencyInjection.Generators, 1.2.0"
// Install AterraEngine.DependencyInjection.Generators as a Cake Addin #addin nuget:?package=AterraEngine.DependencyInjection.Generators&version=1.2.0 // Install AterraEngine.DependencyInjection.Generators as a Cake Tool #tool nuget:?package=AterraEngine.DependencyInjection.Generators&version=1.2.0
⛓️💥 AterraEngine.DependencyInjection ⛓️💥
AterraEngine.DependencyInjection is a library that provides tools for automizing dependency injection in .NET projects. It includes source generators for automatic registration of services and attributes to facilitate DI.
Features
- Automatic Service Registration: Use source generators to automatically register services in your project.
- Custom Attributes: Define custom attributes to specify the lifetime and other details for your services.
Getting Started
Prerequisites
- .NET 9.0 or later
Installation
You can install AterraEngine.DependencyInjection
via NuGet Package Manager:
dotnet add package AterraEngine.DependencyInjection
You can install AterraEngine.DependencyInjection.Generator
via NuGet Package Manager:
dotnet add package AterraEngine.DependencyInjection.Generator
Usage
Define Services with Attributes
You can use the provided attributes to define services:
using Microsoft.Extensions.DependencyInjection;
namespace YourNamespace;
[InjectableService<IExampleService>(ServiceLifetime.Singleton)]
public class ExampleService : IExampleService {
// ...
}
public interface IExampleService {
// ...
}
Generate Service Registrations
The source generator will automatically create the necessary registration code. C
all the generated registration method in your Startup
or Program
class:
using Microsoft.Extensions.DependencyInjection;
var services = new ServiceCollection();
services.RegisterServicesFromYourAssemblyName();
Contributing
Contributions are welcome! Please fork this repository and submit a
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
- Microsoft.CodeAnalysis.Common (>= 4.11.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.