Bindicate 1.7.1

dotnet add package Bindicate --version 1.7.1
                    
NuGet\Install-Package Bindicate -Version 1.7.1
                    
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="Bindicate" Version="1.7.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Bindicate" Version="1.7.1" />
                    
Directory.Packages.props
<PackageReference Include="Bindicate" />
                    
Project file
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 Bindicate --version 1.7.1
                    
#r "nuget: Bindicate, 1.7.1"
                    
#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 Bindicate@1.7.1
                    
#: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=Bindicate&version=1.7.1
                    
Install as a Cake Addin
#tool nuget:?package=Bindicate&version=1.7.1
                    
Install as a Cake Tool

image

'A blend of "Bind" and "Indicate"'.

NuGet NuGet

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 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.

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