Ridavei.Settings
2.0.0.2
See the version list below for details.
dotnet add package Ridavei.Settings --version 2.0.0.2
NuGet\Install-Package Ridavei.Settings -Version 2.0.0.2
<PackageReference Include="Ridavei.Settings" Version="2.0.0.2" />
paket add Ridavei.Settings --version 2.0.0.2
#r "nuget: Ridavei.Settings, 2.0.0.2"
// Install Ridavei.Settings as a Cake Addin #addin nuget:?package=Ridavei.Settings&version=2.0.0.2 // Install Ridavei.Settings as a Cake Tool #tool nuget:?package=Ridavei.Settings&version=2.0.0.2
Ridavei.Settings
Latest release
What is Settings?
Ridavei.Settings is a cross-platform library created to ease getting and setting values in settings manager.
The settings class implement the IDisposable interface to dispose objects that are created by the extensions.
Examples in using Settings
Get settings and then change and retrieve its values.
using Ridavei.Settings;
using Ridavei.Settings.Base;
namespace TestProgram
{
class Program
{
public static void Main(string[] args)
{
SettingsBuilder settingsBuilder = SettingsBuilder
.CreateBuilder()
.SetManager(YOUR_MANAGER_CLASS);
using (ASettings settings = settingsBuilder.GetSettings("DictionaryName")
/*you can use the GetOrCreateSettings method if you are not sure if the settings dictionary exists*/)
{
//You can use settings.Get("ExampleKey", "DefaultValue") if you want to retrieve the default value if the key doesn't exists.
string value = settings.Get("ExampleKey");
settings.Set("AnotherKey", "NewValue");
}
}
}
}
Get all keys with their values from settings.
using System.Collections.Generic;
using Ridavei.Settings;
using Ridavei.Settings.Base;
namespace TestProgram
{
class Program
{
public static void Main(string[] args)
{
SettingsBuilder settingsBuilder = SettingsBuilder
.CreateBuilder()
.SetManager(YOUR_MANAGER_CLASS);
using (ASettings settings = settingsBuilder.GetSettings("DictionaryName")
/*you can use the GetOrCreateSettings method if you are not sure if the settings dictionary exists*/)
{
//Returns the IReadOnlyDictionary to prevent from value changing.
IReadOnlyDictionary<string, string> dict = settings.GetAll();
}
}
}
}
Changing a set of keys.
using System.Collections.Generic;
using Ridavei.Settings;
using Ridavei.Settings.Base;
namespace TestProgram
{
class Program
{
public static void Main(string[] args)
{
Dictionary<string, string> newValues = new Dictionary<string, string>();
newValues.Add("NewKey1", "NewValue1");
SettingsBuilder settingsBuilder = SettingsBuilder
.CreateBuilder()
.SetManager(YOUR_MANAGER_CLASS);
using (ASettings settings = settingsBuilder.GetSettings("DictionaryName")
/*you can use the GetOrCreateSettings method if you are not sure if the settings dictionary exists*/)
{
settings.Set(newValues);
}
}
}
}
Caching
For caching it uses MemoryCache.
To use the cache for storing the settings values you can use the EnableCache
method.
builder.EnableCache();
You can also change the timeout for the cache (default is 15 minutes) by using SetCacheTimeout
method.
builder.SetCacheTimeout(VALUE_IN_MILLISECONDS);
Example of creating extensions
using System.Collections.Generic;
using Ridavei.Settings;
using Ridavei.Settings.Base;
namespace TestProgram
{
public class Program
{
public static void Main(string[] args)
{
SettingsBuilder settingsBuilder = SettingsBuilder
.CreateBuilder()
.UseExampleManager();
using (ASettings settings = settingsBuilder.GetSettings("ExampleDictionary"))
{
//Operations on the settings
}
}
}
public static class Ext
{
public static SettingsBuilder UseExampleManager(this SettingsBuilder builder)
{
return builder.SetManager(new ExampleManager());
}
}
public class ExampleManager : AManager
{
protected override ASettings CreateSettingsObject(string dictionaryName)
{
return new ExampleSettings(dictionaryName);
}
protected override bool TryGetSettingsObject(string dictionaryName, out ASettings settings)
{
settings = new ExampleSettings(dictionaryName);
return true;
}
}
public class ExampleSettings : ASettings
{
public ExampleSettings(string dictionaryName) : base(dictionaryName) { }
protected override IReadOnlyDictionary<string, string> GetAllValues()
{
return new Dictionary<string, string>();
}
protected override bool TryGetValue(string key, out string value)
{
value = "Example";
return true;
}
protected override void SetValue(string key, string value) { }
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. 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 is compatible. 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 | netcoreapp3.1 is compatible. |
.NET Framework | net452 is compatible. net46 was computed. net461 was computed. net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 is compatible. net48 is compatible. net481 was computed. |
-
.NETCoreApp 3.1
- System.Runtime.Caching (>= 5.0.0)
-
.NETFramework 4.5.2
- No dependencies.
-
.NETFramework 4.6.2
- No dependencies.
-
.NETFramework 4.7.2
- No dependencies.
-
.NETFramework 4.8
- No dependencies.
-
net5.0
- System.Runtime.Caching (>= 5.0.0)
-
net6.0
- System.Runtime.Caching (>= 7.0.0)
-
net7.0
- System.Runtime.Caching (>= 7.0.0)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Ridavei.Settings:
Package | Downloads |
---|---|
Ridavei.Settings.InMemory
Builder extension to store settings keys and values in a Dictionary. |
|
Ridavei.Settings.Registry
Builder extension to store settings keys and values in Windows Registry. |
|
Ridavei.Settings.DbAbstractions
Abstract classes for manager and settings retriever used to connect to the database. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
4.0.0.2 | 89 | 10/9/2024 |
4.0.0.1 | 121 | 9/6/2024 |
4.0.0 | 287 | 4/17/2023 |
3.0.1 | 302 | 4/7/2023 |
3.0.0 | 308 | 4/1/2023 |
2.0.0.3 | 546 | 1/5/2023 |
2.0.0.2 | 331 | 11/22/2022 |
2.0.0.1 | 884 | 11/19/2022 |
2.0.0 | 329 | 11/18/2022 |
1.0.1.3 | 854 | 7/8/2022 |
1.0.1.2 | 830 | 7/6/2022 |
1.0.1.1 | 433 | 7/6/2022 |
1.0.1 | 438 | 7/6/2022 |