Open sandboxFocus

Class ServiceProviderBuilder<TService>

A mutable builder for creating ServiceProvider<TBase> instances. Allows registering service factories that will be applied when building the final immutable service provider.

Inheritance
ServiceProviderBuilder<TService>
Namespace: Metalama.Framework.Engine.Services
Assembly: Metalama.Framework.Sdk.dll
Syntax
[CompileTime]
public class ServiceProviderBuilder<TService> where TService : class
Type Parameters
Name Description
TService

The base interface type for services in this builder.

Remarks

Use this builder to register services before building a ServiceProvider<TBase>. Services can be registered either eagerly (with an instance) or lazily (with a factory function).

Constructors

Name Description
ServiceProviderBuilder()
ServiceProviderBuilder(ServiceProviderBuilder<TService>)
ServiceProviderBuilder(params TService[])

Methods

Name Description
Add(Func<ServiceProvider<TService>, ServiceProvider<TService>>)

Adds a transformation function that modifies the service provider during the build process.

Add(TService, bool)

Adds a service instance to the builder.

AddShared(TService)

Adds a shared service instance to the builder. Shared services are shared across all service provider instances in the same family.

AddShared<T>(Func<ServiceProvider<TService>, T>)

Adds a lazily-created shared service to the builder. Shared services are instantiated once and shared across all service provider instances in the same family.

Add<T>(Func<ServiceProvider<TService>, T>, bool)

Adds a lazily-created service to the builder.

Build(ServiceProvider<TService>)

Builds a ServiceProvider<TBase> by applying all registered build actions to an initial provider.

Clear()

Clears all registered build actions from the builder, resetting it to its initial empty state.

Extension Methods