DynamicSettingsLibrary 1.0.0

dotnet add package DynamicSettingsLibrary --version 1.0.0
                    
NuGet\Install-Package DynamicSettingsLibrary -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DynamicSettingsLibrary" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DynamicSettingsLibrary" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="DynamicSettingsLibrary" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add DynamicSettingsLibrary --version 1.0.0
                    
#r "nuget: DynamicSettingsLibrary, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package DynamicSettingsLibrary@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=DynamicSettingsLibrary&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=DynamicSettingsLibrary&version=1.0.0
                    
Install as a Cake Tool

Dynamic Settings Library

NuGet Downloads .NET 9 License: MIT

Eine moderne .NET 9 Bibliothek f�r dynamische Settings-Verwaltung mit JSON-First Ansatz und automatischer UI-Generierung f�r WinUI 3.

?? Installation

dotnet add package DynamicSettingsLibrary

? Features

  • JSON-First Entwicklung: Settings werden prim�r als JSON definiert
  • Bidirektionale Konvertierung: JSON ? C# Objekte
  • Spezielle Namenskonvention: key = Wert, _key = Human-readable Name
  • Automatische UI Generierung: Moderne WinUI 3 Cards mit Fluent Design
  • Icons Support: Segoe Fluent Icons f�r professionelle UIs
  • Kategorien Support: Verschachtelte Settings-Strukturen
  • Listen Support: Arrays und Listen von Werten
  • Validation: Eingebaute Validierung mit Fehlermeldungen
  • Property Change Notification: INotifyPropertyChanged Support

Namenskonvention

Die Library folgt einer speziellen Namenskonvention im JSON: { "settingKey": "actualValue", "_settingKey": "Human Readable Name", "enableLogging": true, "_enableLogging": "Enable Logging", "maxItems": 100, "_maxItems": "Maximum Items" }

Grundlegende Verwendung

1. Settings aus JSON laden

var manager = new DynamicSettingsManager(); var jsonString = """ { "applicationName": "My App", "_applicationName": "Application Name", "enableDebug": true, "_enableDebug": "Enable Debug Mode" } """;

manager.LoadFromJson(jsonString);

2. Settings aus C# Objekt laden

public class MySettings : SettingsBase { [SettingDisplayName("Application Name")] public string ApplicationName { get; set; } = "My App";

[SettingDisplayName("Enable Debug")]
public bool EnableDebug { get; set; } = false;

}

var settings = new MySettings(); var manager = new DynamicSettingsManager(); manager.LoadFromObjectWithAttributes(settings);

3. WinUI 3 UI generieren

var ui = manager.GenerateXamlUI(); // Dieses StackPanel kann direkt in WinUI 3 Apps verwendet werden

4. Zur�ck zu JSON oder Objekt konvertieren

// Zu JSON var json = manager.ToJson();

// Zu typisiertem Objekt var settings = manager.ToObject<MySettings>();

Erweiterte Features

Kategorien (Verschachtelte Settings)

{ "database": { "connectionString": "Server=localhost;", "_connectionString": "Connection String", "timeout": 30, "_timeout": "Timeout (Seconds)" }, "_database": "Database Settings" }

Listen

{ "allowedExtensions": [".txt", ".pdf", ".docx"], "_allowedExtensions": "Allowed File Extensions", "recentFiles": ["file1.txt", "file2.pdf"], "_recentFiles": "Recent Files" }

Attribute f�r C# Klassen

public class AppSettings : SettingsBase { [SettingDisplayName("Application Name")] public string AppName { get; set; } = "";

[SettingDisplayName("File Extensions")]
public List<string> Extensions { get; set; } = new();

[SettingCategory("Database Configuration")]
public DatabaseSettings Database { get; set; } = new();

}

Validation

var validation = manager.ValidateSettings(); if (!validation.IsValid) { foreach (var error in validation.Errors) { Console.WriteLine($"Error: {error}"); } }

UI Generierung

Die Library generiert automatisch passende WinUI 3 Controls:

  • TextBox f�r String-Werte
  • NumberBox f�r numerische Werte
  • CheckBox f�r Boolean-Werte
  • ListView f�r Listen
  • Expander f�r Kategorien

Alle Controls sind �ber Data Binding mit den Settings verbunden und aktualisieren sich automatisch.

Vollst�ndiges Beispiel

// 1. JSON definieren var jsonSettings = """ { "appName": "Demo App", "_appName": "Application Name", "settings": { "theme": "Dark", "_theme": "Theme", "autoSave": true, "_autoSave": "Auto Save" }, "_settings": "Application Settings", "recentFiles": ["file1.txt", "file2.pdf"], "_recentFiles": "Recent Files" } """;

// 2. Manager erstellen und laden var manager = new DynamicSettingsManager(); manager.LoadFromJson(jsonSettings);

// 3. UI generieren var settingsUI = manager.GenerateXamlUI();

// 4. In WinUI 3 App verwenden myContentArea.Children.Add(settingsUI);

// 5. Ge�nderte Settings abrufen var updatedJson = manager.ToJson();

Installation

F�gen Sie die DynamicSettingsLibrary zu Ihrem Projekt hinzu und stellen Sie sicher, dass folgende NuGet Packages installiert sind:

  • Microsoft.WindowsAppSDK
  • Microsoft.Windows.SDK.BuildTools
  • Newtonsoft.Json
  • System.Text.Json

Systemanforderungen

  • .NET 9.0
  • WinUI 3
  • Windows 10 Version 1809 oder h�her

Lizenz

[Ihre Lizenz hier einf�gen]

Product Compatible and additional computed target framework versions.
.NET net9.0-windows10.0.19041 is compatible.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 441 7/21/2025

v1.0.0 - Initial Release:
     - JSON-first settings development with special naming convention
     - Bidirectional JSON ↔ C# object conversion  
     - Automatic XAML UI generation for WinUI 3/WPF
     - FluentWinUIGenerator with Windows 11-style cards
     - Icons support with Segoe Fluent Icons
     - Category and list support
     - Built-in validation system
     - Extensible UI generation system
     - Full .NET 9 support