Configs 1.0.4
See the version list below for details.
dotnet add package Configs --version 1.0.4
NuGet\Install-Package Configs -Version 1.0.4
<PackageReference Include="Configs" Version="1.0.4" />
paket add Configs --version 1.0.4
#r "nuget: Configs, 1.0.4"
// Install Configs as a Cake Addin #addin nuget:?package=Configs&version=1.0.4 // Install Configs as a Cake Tool #tool nuget:?package=Configs&version=1.0.4
Configs
https://www.nuget.org/packages/Configs/
A simple way to save the configurations of a C# app as a json file.
The json file(s) is saved in AppData/Local/{YourAppName} and there is currently no way to change that.
How to use
Before we start, install the package from NuGet.
This package uses Newtonsoft.Json and the idea is to make a class that's going to be used as the model for the configuration file.
Setup
Make a class that inherits from ConfigsTools. This class is the model for your configurations file, so it details how the json file is going to look like. Model example:
using Configs;
using Newtonsoft.Json;
namespace MyApp
{
class AppConfigs : ConfigsTools
{
public AppConfigs()
{
ConfigsFileName = "MyConfigurations.json";
}
[JsonProperty("activated", Required = Required.AllowNull)]
public bool Activated { get; set; }
[JsonProperty("randomString", Required = Required.Default)]
public string RandomString { get; set; }
[JsonProperty("importantStuff", Required = Required.AllowNull)]
public List<ImportantThing> ImportantStuff { get; set; }
public ImportantThing GetImportantThing(string owner)
{
return ImportantStuff.Find(x => x.OwnerName.Equals(owner));
}
}
}
Pretty much anything supported by Newtonsoft.Json and is serializable can be used in this model. You can of course make multiple models each with a different ConfigsFileName to have multiple configurations files.
Usage
Getting the file's values
using Configs;
...
// Get the current app configurations from the json configurations file.
AppConfigs appConfigs = ConfigsTools.GetConfigs<AppConfigs>();
// Get a value from the configurations file.
bool appConfigActivated = appConfigs.Activated;
Editing and saving the file
using Configs;
...
// Get the current app configurations from the json configurations file.
AppConfigs appConfigs = ConfigsTools.GetConfigs<AppConfigs>();
// Change value.
appConfigs.Activated = false;
// Save the file.
appConfigs.Save();
Result
{
"activated": false,
"randomString": "Hey",
"importantStuff": [
{
"ownerName": "Elias Youssef"
},
{
"ownerName": "Slim Shady"
}
]
}
Window Settings icon icon by Icons8
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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | 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.1
- LocalAppDataFolder (>= 1.0.3)
- Newtonsoft.Json (>= 12.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Enabled "XML documentation file"