Nucs.JsonSettings.Autosave
2.0.0-alpha5
See the version list below for details.
dotnet add package Nucs.JsonSettings.Autosave --version 2.0.0-alpha5
NuGet\Install-Package Nucs.JsonSettings.Autosave -Version 2.0.0-alpha5
<PackageReference Include="Nucs.JsonSettings.Autosave" Version="2.0.0-alpha5" />
paket add Nucs.JsonSettings.Autosave --version 2.0.0-alpha5
#r "nuget: Nucs.JsonSettings.Autosave, 2.0.0-alpha5"
// Install Nucs.JsonSettings.Autosave as a Cake Addin #addin nuget:?package=Nucs.JsonSettings.Autosave&version=2.0.0-alpha5&prerelease // Install Nucs.JsonSettings.Autosave as a Cake Tool #tool nuget:?package=Nucs.JsonSettings.Autosave&version=2.0.0-alpha5&prerelease
<img src="https://i.imgur.com/BOExs52.png" width="25" style="margin: 5px 0px 0px 10px"/> JsonSettings
This library aims to simplify the process of creating configuration for your C# app/service
by utilizing the serialization capabilities of Json.NET
to serialize nested (custom) objects, dictionaries and lists as simply as by creating a POCO
and inheriting JsonSettings
class.<br/>
Installation
PM> Install-Package nucs.JsonSettings
Table of Contents
Features Overview
- Initialized in a fluent static API <span style='font-size:11px; padding-left: 3px' >read more</span>
- Cross-platform targeting
netstandard2.0
- Modularity allowing easy extension and high control over behavior on a per-object level <span style='font-size:11px; padding-left: 3px' >read more</span>
- Autosaving on changes <span style='font-size:11px; padding-left: 3px' >read more</span>
- Via
INotificationChanged
/INotificationCollectionChanged
allowing WPF binding (with interval throttling support to avoid cpu overload) <span style='font-size:11px; padding-left: 3px' >read more</span> - Via
Castle.DynamicProxy
generated wrapper <span style='font-size:11px; padding-left: 3px' >read more</span>
- Via
- Versioning control <span style='font-size:11px; padding-left: 3px' >read more</span>
- Offers protection mechanisms such as renaming file and loading default
- By changing version, it allows to introduce any kind of changes to the settings class
- Customizable control over recovering from parsing exceptions <span style='font-size:11px; padding-left: 3px' >read more</span>
- AES256 Encryption via a key <span style='font-size:11px; padding-left: 3px' >read more</span>
- Fully extensible with Json.NET 's capabilities, attributes and settings
- It'll be accurate to say that this library is build around Json.NET
SettingsBag
, adynamic
option that uses a Dictionary<string,object> eliminating the need for hardcoding writing a POCO <span style='font-size:11px; padding-left: 3px' >read more</span>
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Castle.Core (>= 4.4.1)
- Newtonsoft.Json (>= 12.0.3)
- nucs.JsonSettings (>= 2.0.0-alpha5)
- System.Security.SecureString (>= 4.3.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories (2)
Showing the top 2 popular GitHub repositories that depend on Nucs.JsonSettings.Autosave:
Repository | Stars |
---|---|
HandyOrg/HandyWinGet
GUI for installing apps through WinGet and Creating Yaml file
|
|
WinUICommunity/WinUICommunity
WinUICommunity is a collection of useful classes, controls, styles, and codes for WinUI 3. Create a WinUI 3 app in less than a minute with the built-in project templates and scaffolding tools.
|
Version | Downloads | Last updated |
---|---|---|
2.0.2 | 4,908 | 4/5/2023 |
2.0.1 | 1,018 | 1/13/2023 |
2.0.0-alpha7 | 4,030 | 5/23/2021 |
2.0.0-alpha5 | 648 | 5/9/2021 |
2.0.0-alpha4 | 644 | 5/8/2021 |
2.0.0-alpha3 | 707 | 5/1/2021 |
2.0.0-alpha2 | 665 | 3/31/2021 |
2.0.0-alpha1 | 648 | 3/29/2021 |
1.0.0 | 2,918 | 6/3/2018 |
- Added RecoveryModule and .WithRecovery to capture parsing errors
- Added JsonSettings.SuspendAutosave() extension
- Added proxy construction guard to prevent unncessary allocation on proxy creation.
- Fix non virtual built-in properties returning null after being wrapped with proxy.
- Added ProxyGeneratedAttribute that is attached to every proxy-generated class
- Module: made Dispose() inheritable.
- Module.Socket: changed to WeakReference<JsonSettings>
- SettingsBag: added support for SuspendAutosave #26
- VersioningModule: some internal fixes and renames #19
- Added RecoveryModule and WithRecovery api. #19
- JsonSettings: added TryingRecover and Recovered events.
- JsonSettings: Removed ThrowOnEmptyFile, this is handled by RecoveryModule now
- Made all module functions and variables protected or virtual.
- FluentJsonSettings: replaced dynamic creation with hardcoded creation (faster).
- Added proper Versioning example
- JsonSettings: add OnXXXX methods that trigger event changed to protected internal.
- Made all modules extensible
- SettingsBag: removed locking, optimized and replaced with ConcurrentDictionary for threadsafety
- Added documentation