Bindicate 1.7.1
dotnet add package Bindicate --version 1.7.1
NuGet\Install-Package Bindicate -Version 1.7.1
<PackageReference Include="Bindicate" Version="1.7.1" />
<PackageVersion Include="Bindicate" Version="1.7.1" />
<PackageReference Include="Bindicate" />
paket add Bindicate --version 1.7.1
#r "nuget: Bindicate, 1.7.1"
#:package Bindicate@1.7.1
#addin nuget:?package=Bindicate&version=1.7.1
#tool nuget:?package=Bindicate&version=1.7.1
'A blend of "Bind" and "Indicate"'.
Features 🌟
- Automatic registration of (keyed) services using custom attributes.
- Automatic registration and configuration of options via
IOptions<T>
. - Provides clear visibility and reduces boilerplate code.
- Simple integration with the built-in .NET IoC container.
- Supports Decorators
Supported types
<center>
| Type | Available | Keyed (.NET 8) | Decorators |Interceptors | Activators | |--------------------|----------|------------------------------|---------|------------|------------| |AddTransient |✔️ |✔️ | ✔️|❌ |❌ | |TryAddTransient |✔️ |❌ | ❌| ❌|❌ | |AddScoped |✔️ |✔️ |✔️ | ❌| ❌| |TryAddScoped |✔️ |❌ |❌ |❌ |❌ | |AddSingleton |✔️ |✔️ | ✔️| ❌| ❌| |TryAddSingleton |✔️ |❌ |❌ |❌ |❌ | |TryAddEnumerable |✔️ |❌ | ❌| ❌|❌ | </center>
Installation 📦
Via NuGet
Install-Package Bindicate
or
dotnet add package Bindicate
Usage
You can check out the documentation for examples and more information on how to use Bindicate.
Quick overview
Add this line in a project to register all decorated services.
To also configure options, use .WithOptions()
.
You can also use the ServiceCollectionExtension
pattern and use IConfiguration
as a parameters for your extension method if they have options to register.
Example in host project
// Register all decorated services for the current assembly
builder.Services
.AddAutowiringForAssembly(Assembly.GetExecutingAssembly())
.Register();
// Also register Keyed Services (.NET 8)
builder.Services
.AddAutowiringForAssembly(Assembly.GetExecutingAssembly())
.ForKeyedServices()
.Register();
// Also register Options as IOptions<T>
builder.Services
.AddAutowiringForAssembly(Assembly.GetExecutingAssembly())
.ForKeyedServices()
.WithOptions(Configuration) //Pass builder.Configuration here
.Register();
Example usage
[AddScoped(typeof(IMyTaskRunner))]
public class TaskRunner : IMyTaskRunner
{
public void Run()
{
// ...
}
}
public interface IMyTaskRunner
{
void Run();
}
License
This project is licensed under the MIT license.
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. |
-
net8.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 |
---|---|---|
1.7.1 | 154 | 2/17/2025 |
1.7.0 | 153 | 10/15/2024 |
1.6.1 | 2,149 | 10/11/2024 |
1.5.1 | 1,699 | 1/3/2024 |
1.5.0 | 179 | 1/2/2024 |
1.3.0 | 178 | 12/21/2023 |
1.2.0 | 375 | 10/23/2023 |
1.1.9 | 188 | 10/18/2023 |
1.1.8 | 161 | 10/16/2023 |
1.1.7 | 148 | 10/16/2023 |
1.1.6 | 166 | 10/11/2023 |
1.1.5 | 179 | 10/10/2023 |
1.1.0 | 165 | 10/9/2023 |
1.0.0 | 171 | 10/9/2023 |
Add support for Decorators