Add Config locking and caching

This commit is contained in:
TheXamlGuy
2024-10-03 22:39:56 +01:00
parent 8136739372
commit 0c091b3a27
8 changed files with 235 additions and 141 deletions
+26
View File
@@ -0,0 +1,26 @@
using System.Collections.Concurrent;
namespace Toolkit.Foundation;
public static class ConfigurationCache
{
private static readonly ConcurrentDictionary<string, object?> cache = new();
public static void Set<TConfiguration>(string section,
TConfiguration configuration) => cache[section] = configuration;
public static bool Remove(string section) => cache.TryRemove(section, out _);
public static bool TryGet<TConfiguration>(string section,
out TConfiguration? configuration)
{
if (cache.TryGetValue(section, out object? cachedValue))
{
configuration = (TConfiguration?)cachedValue;
return true;
}
configuration = default;
return false;
}
}