A mutable builder for creating ServiceProvider<TBase> instances. Allows registering service factories that will be applied when building the final immutable service provider.
Namespace: Metalama.Framework.Engine.Services
Assembly: Metalama.Framework.Sdk.dll
Syntax
[CompileTime]
public class ServiceProviderBuilder<TService> where TService : classType 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. |