Skip to content

GeneratedServiceProviderBuilder

NexusLabs.Needlr.Injection.SourceGen

NexusLabs.Needlr.Injection.SourceGen

GeneratedServiceProviderBuilder Class

Builds and configures an Microsoft.Extensions.DependencyInjection.IServiceCollection using source-generated plugin discovery.

public sealed class GeneratedServiceProviderBuilder : NexusLabs.Needlr.Injection.IServiceProviderBuilder

Inheritance System.Object 🡒 GeneratedServiceProviderBuilder

Implements NexusLabs.Needlr.Injection.IServiceProviderBuilder

Remarks

This builder uses GeneratedPluginFactory for plugin discovery and is AOT compatible.

Methods

GeneratedServiceProviderBuilder.Build(IConfiguration) Method

Builds a new System.IServiceProvider using the discovered assemblies and a custom registration callback.

public System.IServiceProvider Build(Microsoft.Extensions.Configuration.IConfiguration config);

Parameters

config Microsoft.Extensions.Configuration.IConfiguration

The configuration to use for settings.

Implements Build(IConfiguration)

Returns

System.IServiceProvider
The built System.IServiceProvider.

GeneratedServiceProviderBuilder.Build(IServiceCollection, IConfiguration) Method

Builds a new System.IServiceProvider using the discovered assemblies and a custom registration callback.

public System.IServiceProvider Build(Microsoft.Extensions.DependencyInjection.IServiceCollection services, Microsoft.Extensions.Configuration.IConfiguration config);

Parameters

services Microsoft.Extensions.DependencyInjection.IServiceCollection

The service collection to configure.

config Microsoft.Extensions.Configuration.IConfiguration

The configuration to use for settings.

Implements Build(IServiceCollection, IConfiguration)

Returns

System.IServiceProvider
The built System.IServiceProvider.

GeneratedServiceProviderBuilder.Build(IServiceCollection, IConfiguration, IReadOnlyList<Action<IServiceCollection>>) Method

Builds a new System.IServiceProvider using the provided Microsoft.Extensions.DependencyInjection.IServiceCollection and a custom registration callback.

public System.IServiceProvider Build(Microsoft.Extensions.DependencyInjection.IServiceCollection services, Microsoft.Extensions.Configuration.IConfiguration config, System.Collections.Generic.IReadOnlyList<System.Action<Microsoft.Extensions.DependencyInjection.IServiceCollection>> postPluginRegistrationCallbacks);

Parameters

services Microsoft.Extensions.DependencyInjection.IServiceCollection

The service collection to configure.

config Microsoft.Extensions.Configuration.IConfiguration

The configuration to use for settings.

postPluginRegistrationCallbacks System.Collections.Generic.IReadOnlyList<System.Action<Microsoft.Extensions.DependencyInjection.IServiceCollection>>

The set of callbacks for additional registration logic

Implements Build(IServiceCollection, IConfiguration, IReadOnlyList<Action<IServiceCollection>>)

Returns

System.IServiceProvider
The built System.IServiceProvider.

GeneratedServiceProviderBuilder.Build(IServiceCollection, IConfiguration, IReadOnlyList<Action<IServiceCollection>>, IReadOnlyList<Action<IServiceCollection>>) Method

Builds a new System.IServiceProvider with both pre and post registration callbacks.

public System.IServiceProvider Build(Microsoft.Extensions.DependencyInjection.IServiceCollection services, Microsoft.Extensions.Configuration.IConfiguration config, System.Collections.Generic.IReadOnlyList<System.Action<Microsoft.Extensions.DependencyInjection.IServiceCollection>> preRegistrationCallbacks, System.Collections.Generic.IReadOnlyList<System.Action<Microsoft.Extensions.DependencyInjection.IServiceCollection>> postPluginRegistrationCallbacks);

Parameters

services Microsoft.Extensions.DependencyInjection.IServiceCollection

The service collection to configure.

config Microsoft.Extensions.Configuration.IConfiguration

The configuration to use for settings.

preRegistrationCallbacks System.Collections.Generic.IReadOnlyList<System.Action<Microsoft.Extensions.DependencyInjection.IServiceCollection>>

Callbacks executed before auto-discovery registration (e.g., for open generics).

postPluginRegistrationCallbacks System.Collections.Generic.IReadOnlyList<System.Action<Microsoft.Extensions.DependencyInjection.IServiceCollection>>

Callbacks executed after plugin registration.

Implements Build(IServiceCollection, IConfiguration, IReadOnlyList<Action<IServiceCollection>>, IReadOnlyList<Action<IServiceCollection>>)

Returns

System.IServiceProvider
The built System.IServiceProvider.

GeneratedServiceProviderBuilder.ConfigurePostBuildServiceCollectionPlugins(IServiceProvider, IConfiguration) Method

Configures plugins that require post-build service collection configuration using the built service provider.

public void ConfigurePostBuildServiceCollectionPlugins(System.IServiceProvider provider, Microsoft.Extensions.Configuration.IConfiguration config);

Parameters

provider System.IServiceProvider

The built service provider to use for plugin configuration.

config Microsoft.Extensions.Configuration.IConfiguration

The configuration to use for settings.

Implements ConfigurePostBuildServiceCollectionPlugins(IServiceProvider, IConfiguration)

GeneratedServiceProviderBuilder.GetCandidateAssemblies() Method

Gets the list of candidate assemblies that will be scanned for service registrations and plugins.

public System.Collections.Generic.IReadOnlyList<System.Reflection.Assembly> GetCandidateAssemblies();

Implements GetCandidateAssemblies()

Returns

System.Collections.Generic.IReadOnlyList<System.Reflection.Assembly>
A read-only list of assemblies to be processed for dependency injection.