DynamicSettingsLibrary 1.0.0
dotnet add package DynamicSettingsLibrary --version 1.0.0
NuGet\Install-Package DynamicSettingsLibrary -Version 1.0.0
<PackageReference Include="DynamicSettingsLibrary" Version="1.0.0" />
<PackageVersion Include="DynamicSettingsLibrary" Version="1.0.0" />
<PackageReference Include="DynamicSettingsLibrary" />
paket add DynamicSettingsLibrary --version 1.0.0
#r "nuget: DynamicSettingsLibrary, 1.0.0"
#:package DynamicSettingsLibrary@1.0.0
#addin nuget:?package=DynamicSettingsLibrary&version=1.0.0
#tool nuget:?package=DynamicSettingsLibrary&version=1.0.0
Dynamic Settings Library
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 | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0-windows10.0.19041 is compatible. net10.0-windows was computed. |
-
net9.0-windows10.0.19041
- Microsoft.UI.Xaml (>= 2.8.7)
- Microsoft.WindowsAppSDK (>= 1.7.250606001)
- Newtonsoft.Json (>= 13.0.3)
- System.Text.Json (>= 9.0.7)
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 | 442 | 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