nucs.JsonSettings
2.0.0-alpha5
See the version list below for details.
dotnet add package nucs.JsonSettings --version 2.0.0-alpha5
NuGet\Install-Package nucs.JsonSettings -Version 2.0.0-alpha5
<PackageReference Include="nucs.JsonSettings" Version="2.0.0-alpha5" />
paket add nucs.JsonSettings --version 2.0.0-alpha5
#r "nuget: nucs.JsonSettings, 2.0.0-alpha5"
// Install nucs.JsonSettings as a Cake Addin #addin nuget:?package=nucs.JsonSettings&version=2.0.0-alpha5&prerelease // Install nucs.JsonSettings as a Cake Tool #tool nuget:?package=nucs.JsonSettings&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
- Newtonsoft.Json (>= 12.0.3)
- System.Security.SecureString (>= 4.3.0)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on nucs.JsonSettings:
Package | Downloads |
---|---|
Nucs.JsonSettings.Autosave
An extension to JsonSettings that allows to wrap a class via transparent proxy that autosaves. Support for Autosaving on INotifyPropertyChanged/INotifyCollectionChanged. |
|
Kitty.Common_framework
this library contains log config inject database |
|
Kitty.Common
Package Description |
GitHub repositories (2)
Showing the top 2 popular GitHub repositories that depend on nucs.JsonSettings:
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 | 6,970 | 4/5/2023 |
2.0.1 | 1,843 | 1/13/2023 |
2.0.0-alpha7 | 4,646 | 5/23/2021 |
2.0.0-alpha5 | 1,188 | 5/9/2021 |
2.0.0-alpha4 | 1,151 | 5/8/2021 |
2.0.0-alpha3 | 1,194 | 5/1/2021 |
2.0.0-alpha2 | 1,196 | 3/31/2021 |
2.0.0-alpha1 | 1,135 | 3/29/2021 |
1.0.7 | 9,731 | 6/3/2018 |
1.0.6 | 1,574 | 5/26/2018 |
1.0.5 | 1,630 | 5/11/2018 |
1.0.4 | 1,615 | 4/12/2018 |
1.0.3 | 1,564 | 4/12/2018 |
1.0.2 | 1,649 | 4/8/2018 |
1.0.0.1 | 1,877 | 9/30/2017 |
- 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