استفاده از فایل Json برای ذخیره و بازیابی تنظیمات برنامه
نویسنده: مهدی حسینی
تاریخ: ۱۳۹۹/۱۰/۱۳ ۱۹:۲۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
public abstract class GlobalData<T> where T : GlobalData<T>, new()
public static T Config { get; set; } private static string _filename { get; set; } public static void Init(string FileName = "AppConfig.json")
{
_filename = FileName;
if (File.Exists(FileName))
{
string json = File.ReadAllText(FileName);
Config = (string.IsNullOrEmpty(json) ? new T() : JsonSerializer.Deserialize<T>(json)) ?? new T();
}
else
{
Config = new T();
}
} public static void Save()
{
JsonSerializerOptions options = new JsonSerializerOptions { WriteIndented = true, IgnoreNullValues = true };
string json = JsonSerializer.Serialize(Config, options);
File.WriteAllText(_filename, json);
} internal class AppConfig : GlobalData<AppConfig>
public string ServerUrl { get; set; } = "https://sub.deltaleech.com";
public bool IsShowNotification { get; set; } = true;
public NavigationViewPaneDisplayMode PaneDisplayMode { get; set; } = NavigationViewPaneDisplayMode.Left;
public SkinType Skin { get; set; } = SkinType.Default; protected override void OnStartup(StartupEventArgs e) {
GlobalData<AppConfig>.Init();
} var skin = GlobalData<AppConfig>.Config.Skin;
GlobalData<AppConfig>.Config.Skin = Skin.Dark; GlobalData<AppConfig>.Save();
دقت داشته باشید که اگر بعد از ذخیره کردن تنظیمات، قصد داشته باشید اطلاعات جدید را دریافت کنید، باید حتما قبل از دریافت اطلاعات، متد Init را یکبار دیگر فراخوانی کنید تا اطلاعات جدید، نمایش داده شود.