using Microsoft.Win32; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Tango.FSE.BL.WindowsRegistry { public class RegistryService { private static RegistryService _instance; private String baseKey; public static RegistryService Default { get { if (_instance == null) { _instance = new RegistryService(); } return _instance; } } public RegistryService() { baseKey = $@"{Registry.CurrentUser}\Software\Twine\Tango FSE"; } public virtual void SetValue(String key, String value) { Registry.SetValue($"{baseKey}", key, value, RegistryValueKind.String); } public virtual String GetValue(String key) { var value = Registry.GetValue($"{baseKey}", key, null); if (value == null) return null; return value.ToString(); } public virtual void SetValue(String key, Object value) { SetValue(key, JsonConvert.SerializeObject(value)); } public virtual T GetValue(String key) { return JsonConvert.DeserializeObject(GetValue(key)); } } }