Skip to main content

BunnyTailServiceRegistration by Machi Pon

Nuget / site data

Nuget GitHub last commit GitHub Repo stars

Details

Info

info

Name: BunnyTailServiceRegistration

Service registration source generator.

Author: Machi Pon

NuGet: https://www.nuget.org/packages/BunnyTail.ServiceRegistration/

You can find more details at https://github.com/usausa/service-registration-generator

Source : https://github.com/usausa/service-registration-generator

Original Readme

note

BunnyTail.ServiceRegistrationGenerator

PackageInfo
BunnyTail.ServiceRegistrationNuGet

What is this?

Service registory method generator.

Usage

using BunnyTail.ServiceRegistration;

using Microsoft.Extensions.DependencyInjection;

internal static class Program
{
public static void Main()
{
using var provider = new ServiceCollection()
.AddServices()
.BuildServiceProvider();

var service = provider.GetRequiredService<TestService>();
}
}

internal static partial class ServiceCollectionExtensions
{
[ServiceRegistration(Lifetime.Singleton, "Service$")]
public static partial IServiceCollection AddServices(this IServiceCollection services);
}

internal sealed class TestService
{
}

About

note

Generating service registration code from attributes

How to use

Example ( source csproj, source files )

This is the CSharp Project that references BunnyTailServiceRegistration

<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<PropertyGroup>
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
<CompilerGeneratedFilesOutputPath>$(BaseIntermediateOutputPath)\GX</CompilerGeneratedFilesOutputPath>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="BunnyTail.ServiceRegistration" Version="1.7.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="9.0.2" />

</ItemGroup>
</Project>

Generated Files

Those are taken from $(BaseIntermediateOutputPath)\GX

// <auto-generated />
#nullable enable

using Microsoft.Extensions.DependencyInjection;

partial class ServiceCollectionExtensions
{
public static partial global::Microsoft.Extensions.DependencyInjection.IServiceCollection AddDatabaseServices(this global::Microsoft.Extensions.DependencyInjection.IServiceCollection services)
{
services.AddScoped<global::InjectDemo.Database>();
services.AddScoped<global::InjectDemo.IDatabase, global::InjectDemo.DatabaseCon>();
return services;
}
}

Usefull

Download Example (.NET C# )

Share BunnyTailServiceRegistration

https://ignatandrei.github.io/RSCG_Examples/v2/docs/BunnyTailServiceRegistration

In the same category (DependencyInjection) - 8 other generators

AutoRegisterInject

DependencyModules.SourceGenerator

depso

FactoryGenerator

Injectio

jab

Pure.DI

ServiceScan.SourceGenerator