feat(Client): statische Klasse zur Behandlung des Standarddienstanbieters mit „Lazy Loading“ erstellt

This commit is contained in:
tekh 2025-07-07 15:36:48 +02:00
parent 2c73022526
commit 3377cc6121

View File

@ -0,0 +1,31 @@
using MediatR;
using Microsoft.Extensions.DependencyInjection;
namespace Leanetec.EConnect.Client;
/// <summary>
/// Provides a lazily initialized <see cref="IServiceProvider"/> for accessing the EConnect client services,
/// including an <see cref="IMediator"/> instance for sending and publishing messages.
/// </summary>
public static class Client
{
/// <summary>
/// Lazily initializes the <see cref="IServiceProvider"/> that registers and builds the EConnect client services.
/// </summary>
private static readonly Lazy<IServiceProvider> _serviceProvider = new(() =>
{
var services = new ServiceCollection();
services.AddEConnectClient();
return services.BuildServiceProvider();
});
/// <summary>
/// Gets the initialized <see cref="IServiceProvider"/> that provides access to registered EConnect client services.
/// </summary>
public static IServiceProvider Provider => _serviceProvider.Value;
/// <summary>
/// Gets the <see cref="IMediator"/> instance used for sending commands, queries, and publishing events within the EConnect client.
/// </summary>
public static IMediator Mediator => Provider.GetRequiredService<IMediator>();
}