DiÆon 1.0.3
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package DiÆon --version 1.0.3
NuGet\Install-Package DiÆon -Version 1.0.3
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="DiÆon" Version="1.0.3" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DiÆon" Version="1.0.3" />
<PackageReference Include="DiÆon" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add DiÆon --version 1.0.3
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: DiÆon, 1.0.3"
#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.
#:package DiÆon@1.0.3
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=DiÆon&version=1.0.3
#tool nuget:?package=DiÆon&version=1.0.3
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
DiÆon
⚡ Overview
This project provides a utility for automatically registering services in a .NET application using custom attributes (Singleton
, Scoped
, and Transient
). It simplifies the process of configuring dependency injection by scanning assemblies and registering services based on their lifetime.
🚀 Features
- 🛠️ Custom Attributes: Use
[Singleton]
,[Scoped]
, and[Transient]
to define the lifetime of your services. - 🔄 Automatic Registration: Automatically scans assemblies and registers services with the appropriate lifetime in the
IServiceCollection
. - 🏷️ Interface Binding: Automatically binds implementations to their interfaces if defined.
📦 Installation
Just clone or include the DiÆon class in your project. No external dependencies are required.
📖 Usage
🔷 1. Define your services and annotate them with the appropriate lifetime attribute:
using DiÆon.Attributes;
[Scoped]
public Interface IMyService
{
// Implementation
}
[Scoped]
public class MyScopedService : IMyService
{
// Implementation
}
[Singleton]
public class MyScopedService
{
// Implementation
}
🔷 2. Use the Aggregator class to register services in your Startup or Program class:
using DiÆon.Aggregator;
using Microsoft.Extensions.DependencyInjection;
using System.Reflection;
var services = new ServiceCollection();
var aggregator = new LifetimeAggregator();
aggregator.Aggregate(Assembly.GetExecutingAssembly(), ref services);
Attributes
[Singleton]: Registers the service with a singleton lifetime.
[Scoped]: Registers the service with a scoped lifetime.
[Transient]: Registers the service with a transient lifetime.
⚠️ Error Handling
MultipleLifetimeException
👨💻 Contributing
Feel free to submit issues or create pull requests to enhance DiÆon.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- Microsoft.Extensions.DependencyInjection (>= 8.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.