C# 設定檔教學 (三) 最方便的 Json設定檔

 在 C#應用程式中寫設定檔的方式有非常多種,

筆者預計會介紹 3種設定檔的撰寫方式:
3. Json 設定檔

本篇要介紹的就是第三點, Json 設定檔(最後面有完整程式碼)

缺點:
1.需要額外安裝套件
2.Json格式有一定規則,相對於ini比較複雜,一般使用者不好編輯

優點:
1.最方便使用,可以一次讀取和寫入所有設定值
2.利用Attribute可以輕易和其他物件連動,打出超強組合拳!有機會就會再寫一篇介紹如何快速建立編輯設定值的使用者介面

前置作業,安裝套件:
先搜尋 Newtonsoft.Json 並安裝

建立類別:
我們先建立一個ConfigurationDto類別,用來存放我們所有需要用到的設定值,之後直接把整個類別變成Json格式儲存就可以了,簡單方便快速!
public class ConfigurationDto
{
public string Name;
public string Blog;
public int Car;
}

建立一個物件,就是剛剛的那個類別
public static ConfigurationDto Data = new();
設定檔的檔案路徑:
public static string FilePath = "RuyutConsoleApp.json";
寫入設定值:
public static void SaveConfiguration()
{
string output = JsonConvert.SerializeObject(Data);
File.WriteAllText(FilePath, output);
}
使用:
Data.Name = "Ruyut";
Data.Blog = "https://www.ruyut.com";
Data.Car = 0;
SaveConfiguration();
輸出檔案內容:

讀取設定值:

public static void ReadConfiguration()
{
if (!File.Exists(FilePath)) File.WriteAllText(FilePath, JsonConvert.SerializeObject(Data));

var fileData = File.ReadAllText(FilePath);

try
{
JsonConvert.PopulateObject(fileData, Data);
}
catch (Exception e)
{
Console.WriteLine("設定檔內容有誤,請確認!\n" + e.Message, "設定檔內容有誤");
}
}
使用:
ReadConfiguration();
Console.WriteLine(Data.Name);
Console.WriteLine(Data.Blog);
Console.WriteLine(Data.Car);
輸出內容:
Ruyut
https://www.ruyut.com
0
完整程式碼:


延伸閱讀:C# winform 程式的設定檔要儲存在哪裡?

留言