feat(Client): Hinzufügen einer statischen Eigenschaft zur Konfiguration von Optionen in lokalen

This commit is contained in:
2025-07-07 16:08:52 +02:00
parent 2fbd50d52e
commit 816b72bfc8
2 changed files with 20 additions and 3 deletions

View File

@@ -9,13 +9,31 @@ namespace Leanetec.EConnect.Client;
/// </summary>
public static class Client
{
private static Action<ClientOptions>? _options = null;
/// <summary>
/// Gets or sets the configuration options for the EConnect client.
/// Can only be set once; subsequent attempts to set will result in an exception.
/// </summary>
public static Action<ClientOptions> Options
{
get => _options ?? throw new InvalidOperationException("EConnect Client options have not been configured. Please set the 'Client.Options' property before accessing client services.");
set
{
if (_options is null)
_options = value;
else
throw new InvalidOperationException("EConnect Client options have already been configured. Reassignment is not allowed.");
}
}
/// <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();
services.AddEConnectClient(Options);
return services.BuildServiceProvider();
});