From c81ff2c6285204c6f2f5599896f4063c09d75891 Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Mon, 28 Apr 2025 15:44:01 +0200 Subject: [PATCH] =?UTF-8?q?feat(ConfigurationExtension):=20Hinzuf=C3=BCgen?= =?UTF-8?q?=20der=20Klasse=20ConfigurationExtension=20mit=20der=20Methode?= =?UTF-8?q?=20GetOrDefault=20zum=20sichereren=20Abrufen=20von=20Konfigurat?= =?UTF-8?q?ionen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Einführung einer neuen statischen Klasse ConfigurationExtension im Namespace DigitalData.Core.Abstractions. - Hinzufügen der GetOrDefault-Erweiterungsmethode zu IConfiguration, die eine einfachere Abfrage von Konfigurationswerten mit Standardverhalten ermöglicht, wenn diese nicht gefunden werden. - Aktualisierung der Versionsnummern auf 3.5.0 in den Projektdateien. --- .../ConfigurationExtension.cs | 30 +++++++++++++++++++ .../DigitalData.Core.Abstractions.csproj | 6 ++-- 2 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 DigitalData.Core.Abstractions/ConfigurationExtension.cs diff --git a/DigitalData.Core.Abstractions/ConfigurationExtension.cs b/DigitalData.Core.Abstractions/ConfigurationExtension.cs new file mode 100644 index 0000000..5515124 --- /dev/null +++ b/DigitalData.Core.Abstractions/ConfigurationExtension.cs @@ -0,0 +1,30 @@ +using Microsoft.Extensions.Configuration; + +namespace DigitalData.Core.Abstractions +{ + /// + /// Extension methods for the interface, providing + /// additional functionality for retrieving configuration values with default behavior. + /// + public static class ConfigurationExtension + { + /// + /// Retrieves a configuration value for the specified key, or returns a default value + /// of type if the configuration is not found or the key is null. + /// + /// The type of the object to retrieve from the configuration. + /// The instance. + /// The optional key to look for in the configuration. If null, the method + /// retrieves the root configuration. + /// + /// An instance of populated from the configuration values, or + /// a new instance of if no matching configuration is found. + /// + public static T GetOrDefault(this IConfiguration configuration, string? key = null) + where T : new() + => (key is null + ? configuration.Get() + : configuration.GetSection(key).Get()) + ?? new T(); + } +} diff --git a/DigitalData.Core.Abstractions/DigitalData.Core.Abstractions.csproj b/DigitalData.Core.Abstractions/DigitalData.Core.Abstractions.csproj index c6579bd..fdb87d2 100644 --- a/DigitalData.Core.Abstractions/DigitalData.Core.Abstractions.csproj +++ b/DigitalData.Core.Abstractions/DigitalData.Core.Abstractions.csproj @@ -17,9 +17,9 @@ http://git.dd:3000/AppStd/WebCoreModules.git False core_icon.png - 3.4.4 - 3.4.4 - 3.4.4 + 3.5.0 + 3.5.0 + 3.5.0