Class ServiceFactory<T>
Represents a generic abstract factory for creating and managing service instances of type T.
This factory leverages dependency injection and configuration patterns to facilitate the creation and lifecycle management of services.
Implements
Inherited Members
Namespace: Coree.NETStandard.Abstractions.ServiceFactory
Assembly: Coree.NETStandard.dll
Syntax
[Obsolete("ServiceFactory<T> is deprecated and will be removed in future versions. Use ServiceFactoryEx<T> instead.")]
public abstract class ServiceFactory<T> : IDisposable where T : class
Type Parameters
| Name | Description |
|---|---|
| T | The type of service to be created and managed. This type must be a class that implements IDisposable. |
Remarks
The ServiceFactory<T> serves as a foundational component in applications requiring robust and configurable service instantiation.
It abstracts the complexity involved in the instantiation and management of services, thereby promoting a clean and maintainable architecture.
This class should be inherited by specific service factory implementations that can provide concrete and custom instantiation logic.
private static async Task Main(string[] args)
{
// Creating a FileService instance without params nullable ILogger.
var fileService1 = new FileService();
// Creating a FileService instance using the constructor that accepts an ILogger.
var fileService2 = new FileService(new Logger<FileService>());
// Creating a FileService instance using the factory method.
var fileService3 = FileService.CreateServiceFactory();
// Example method calls on fileService instances
await fileService1.SomeFileOperationAsync();
await fileService2.SomeFileOperationAsync();
fileService3.SomeFileOperation();
}
public partial class FileService : ServiceFactory<FileService>, IFileService
{
private readonly ILogger<FileService>? _logger;
public FileService(ILogger< FileService>? logger = null)
{
this._logger = logger;
}
}
Methods
| Edit this page View SourceCreateServiceFactory()
Creates a service instance with a default logging level set to Trace.
Declaration
public static T CreateServiceFactory()
Returns
| Type | Description |
|---|---|
| T | A new instance of type |
Remarks
This method simplifies the creation of a service instance by applying a default Trace logging level. It delegates to another factory method, providing a standardized logging setup for basic tracing of application activities.
CreateServiceFactory(LogLevel)
Creates a service instance with a default logging level.
Declaration
public static T CreateServiceFactory(LogLevel logLevel)
Parameters
| Type | Name | Description |
|---|---|---|
| LogLevel | logLevel | The logging level to be used as default. |
Returns
| Type | Description |
|---|---|
| T | A new instance of type |
CreateServiceFactory(Action<IServiceCollection>?)
Creates a service instance with optional service collection configuration.
Declaration
public static T CreateServiceFactory(Action<IServiceCollection>? services = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Action<IServiceCollection> | services | An action to configure the services. Can be null. |
Returns
| Type | Description |
|---|---|
| T | A new instance of type |
CreateServiceFactory(Action<IServiceCollection>?, Action<ILoggingBuilder>?, Action<IHostBuilder>?)
Creates a service instance with optional configurations for services, logging, and host.
Declaration
public static T CreateServiceFactory(Action<IServiceCollection>? configureServices = null, Action<ILoggingBuilder>? configureLogging = null, Action<IHostBuilder>? configureHost = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Action<IServiceCollection> | configureServices | An action to configure the services. Can be null. |
| Action<ILoggingBuilder> | configureLogging | An action to configure the logging. Can be null. |
| Action<IHostBuilder> | configureHost | An action to configure the host. Can be null. |
Returns
| Type | Description |
|---|---|
| T | A new instance of type |
CreateServiceFactory(Action<IHostBuilder>?)
Creates a service instance with optional host configuration.
Declaration
public static T CreateServiceFactory(Action<IHostBuilder>? configureHost = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Action<IHostBuilder> | configureHost | An action to configure the host. Can be null. |
Returns
| Type | Description |
|---|---|
| T | A new instance of type |
Dispose()
Disposes the static instance of the host if it has been created.
Declaration
public void Dispose()