欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    本文將詳細(xì)介紹如何在.NET桌面程序中使用自定義的XML配置文件來保存和讀取設(shè)置。除了XML之外,我們還將探討其他常見的配置文件格式,如JSON、INI和YAML,以及它們的優(yōu)缺點(diǎn)和相關(guān)的NuGet類庫。最后,我們將重點(diǎn)介紹我們?yōu)楹芜x擇XML作為配置文件格式,并展示一個實(shí)用的示例。

    1. 背景

    在.NET桌面程序中,通常使用setting文件來保存程序的配置信息。使用setting文件的方法很簡單,只需在項(xiàng)目中添加一個setting文件,然后通過Properties.Settings.Default來獲取和保存設(shè)置即可。

    我的開源項(xiàng)目 HackerScreenSaver[1] 之前就是使用這種方式,但是當(dāng)我在升級 Windows11 的內(nèi)核版本后,發(fā)現(xiàn)當(dāng)程序在被系統(tǒng)以屏保程序啟動后,無法加載配置了。

    如此這般就需要使用其他方式來存儲配置文件了。畢竟,setting文件并非唯一可用于保存設(shè)置的方式。我們可以選擇存儲到注冊表,或者自己寫配置文件并保存。

    2. 常見的配置文件格式

    對于一些簡單的配置我們甚至可以直接寫一個二進(jìn)制文件,當(dāng)然一般情況下我們還是選擇常見格式的配置文件,比如:JSON、INI 和 YAML。

    1.JSON(JavaScript Object Notation) 格式?優(yōu)點(diǎn):易于閱讀和編寫,支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu),廣泛應(yīng)用于Web API和前端開發(fā)。?缺點(diǎn):根據(jù) JSON 規(guī)范,其是不支持注釋的(單獨(dú) Json 文件在某些編輯器可以正確解析注釋,在 .NET Core 中通過 JSON 配置提供程序讀取配置時,也可以在配置文件中添加注釋)。?相關(guān)類庫:Newtonsoft.Json(建議使用自帶的 System.Text.Json),可參考相關(guān)遷移教程[2]。2.INI(Initialization File)?優(yōu)點(diǎn):簡潔,易于閱讀和編輯,適用于存儲簡單的鍵值對。?缺點(diǎn):不支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和類型。?相關(guān)類庫:ini-parser3.YAML(Yet Another Markup Language)?優(yōu)點(diǎn):簡潔,易于閱讀和編輯,支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu),支持注釋。?缺點(diǎn):縮進(jìn)敏感,可能導(dǎo)致錯誤。?相關(guān)類庫:YamlDotNet

    3. HackerScreenSaver 的配置選擇

    HackerScreenSaver 為了設(shè)計(jì)的小巧,根據(jù)合適原則和簡單原則,我最終選擇了不需要引入其他第三方的 XML 格式配置文件。

    XML(eXtensible Markup Language)具有以下優(yōu)點(diǎn):

    ?可擴(kuò)展性強(qiáng),支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。?支持注釋,便于理解和維護(hù)。?作為標(biāo)準(zhǔn)的數(shù)據(jù)交換格式,易于與其他系統(tǒng)集成。

    以下是我們設(shè)計(jì)的一個簡單的配置類 SimpleSetting,用于保存設(shè)置:

    • public class SimpleSetting{ // 類的屬性和構(gòu)造函數(shù)省略...
      /// <summary> /// 從文件中讀取設(shè)置 /// </summary> /// <param name="path">配置文件路徑</param> public SimpleSetting(string path) { System.Xml.Serialization.XmlSerializer xs=new System.Xml.Serialization.XmlSerializer(typeof(SimpleSetting)); using (System.IO.FileStream fs=new System.IO.FileStream(path, System.IO.FileMode.Open)) { SimpleSetting ss=(SimpleSetting)xs.Deserialize(fs); isLocal=ss.isLocal; uInfo=ss.uInfo; Opacity=ss.Opacity; autoExit=ss.autoExit; } }
      /// <summary> /// 保存設(shè)置到文件 /// </summary> /// <param name="path">配置文件路徑</param> public void Save(string path) { System.Xml.Serialization.XmlSerializer xs=new System.Xml.Serialization.XmlSerializer(typeof(SimpleSetting)); using (System.IO.FileStream fs=new System.IO.FileStream(path, System.IO.FileMode.Create)) { xs.Serialize(fs, this); } }}

      SimpleSetting 類中包含了從XML文件中讀取設(shè)置和將設(shè)置保存到XML文件的方法。為了使用該類,我們只需要在程序中創(chuàng)建一個 SimpleSetting 對象,然后調(diào)用其 SaveLoad 方法即可。這樣,我們就可以在.NET桌面程序中使用自定義的XML配置文件來保存設(shè)置了。

      4. 最后

      本文詳細(xì)介紹了如何在.NET桌面程序中使用自定義的 XML 配置文件以及為何選擇 XML 作為配置文件格式。同時,我們還探討了其他常見的配置文件格式,如 JSON、INI 和 YAML,以及它們的優(yōu)缺點(diǎn)和相關(guān)的 NuGet 類庫。希望這篇文章能幫助你找到適合你項(xiàng)目需求的配置文件解決方案!

      References

      [1] HackerScreenSaver: https://github.com/sangyuxiaowu/HackerScreenSaver?wt.mc_id=DT-MVP-5005195
      [2] 相關(guān)遷移教程: https://learn.microsoft.com/zh-cn/dotnet/standard/serialization/system-text-json/migrate-from-newtonsoft?wt.mc_id=DT-MVP-5005195

    本文將詳細(xì)介紹如何在.NET桌面程序中使用自定義的XML配置文件來保存和讀取設(shè)置。除了XML之外,我們還將探討其他常見的配置文件格式,如JSON、INI和YAML,以及它們的優(yōu)缺點(diǎn)和相關(guān)的NuGet類庫。最后,我們將重點(diǎn)介紹我們?yōu)楹芜x擇XML作為配置文件格式,并展示一個實(shí)用的示例。

    1. 背景

    在.NET桌面程序中,通常使用setting文件來保存程序的配置信息。使用setting文件的方法很簡單,只需在項(xiàng)目中添加一個setting文件,然后通過Properties.Settings.Default來獲取和保存設(shè)置即可。

    我的開源項(xiàng)目 HackerScreenSaver[1] 之前就是使用這種方式,但是當(dāng)我在升級 Windows11 的內(nèi)核版本后,發(fā)現(xiàn)當(dāng)程序在被系統(tǒng)以屏保程序啟動后,無法加載配置了。

    如此這般就需要使用其他方式來存儲配置文件了。畢竟,setting文件并非唯一可用于保存設(shè)置的方式。我們可以選擇存儲到注冊表,或者自己寫配置文件并保存。

    2. 常見的配置文件格式

    對于一些簡單的配置我們甚至可以直接寫一個二進(jìn)制文件,當(dāng)然一般情況下我們還是選擇常見格式的配置文件,比如:JSON、INI 和 YAML。

    1.JSON(JavaScript Object Notation) 格式?優(yōu)點(diǎn):易于閱讀和編寫,支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu),廣泛應(yīng)用于Web API和前端開發(fā)。?缺點(diǎn):根據(jù) JSON 規(guī)范,其是不支持注釋的(單獨(dú) Json 文件在某些編輯器可以正確解析注釋,在 .NET Core 中通過 JSON 配置提供程序讀取配置時,也可以在配置文件中添加注釋)。?相關(guān)類庫:Newtonsoft.Json(建議使用自帶的 System.Text.Json),可參考相關(guān)遷移教程[2]。2.INI(Initialization File)?優(yōu)點(diǎn):簡潔,易于閱讀和編輯,適用于存儲簡單的鍵值對。?缺點(diǎn):不支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和類型。?相關(guān)類庫:ini-parser3.YAML(Yet Another Markup Language)?優(yōu)點(diǎn):簡潔,易于閱讀和編輯,支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu),支持注釋。?缺點(diǎn):縮進(jìn)敏感,可能導(dǎo)致錯誤。?相關(guān)類庫:YamlDotNet

    3. HackerScreenSaver 的配置選擇

    HackerScreenSaver 為了設(shè)計(jì)的小巧,根據(jù)合適原則和簡單原則,我最終選擇了不需要引入其他第三方的 XML 格式配置文件。

    XML(eXtensible Markup Language)具有以下優(yōu)點(diǎn):

    ?可擴(kuò)展性強(qiáng),支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。?支持注釋,便于理解和維護(hù)。?作為標(biāo)準(zhǔn)的數(shù)據(jù)交換格式,易于與其他系統(tǒng)集成。

    以下是我們設(shè)計(jì)的一個簡單的配置類 SimpleSetting,用于保存設(shè)置:

    • public class SimpleSetting{ // 類的屬性和構(gòu)造函數(shù)省略...
      /// <summary> /// 從文件中讀取設(shè)置 /// </summary> /// <param name="path">配置文件路徑</param> public SimpleSetting(string path) { System.Xml.Serialization.XmlSerializer xs=new System.Xml.Serialization.XmlSerializer(typeof(SimpleSetting)); using (System.IO.FileStream fs=new System.IO.FileStream(path, System.IO.FileMode.Open)) { SimpleSetting ss=(SimpleSetting)xs.Deserialize(fs); isLocal=ss.isLocal; uInfo=ss.uInfo; Opacity=ss.Opacity; autoExit=ss.autoExit; } }
      /// <summary> /// 保存設(shè)置到文件 /// </summary> /// <param name="path">配置文件路徑</param> public void Save(string path) { System.Xml.Serialization.XmlSerializer xs=new System.Xml.Serialization.XmlSerializer(typeof(SimpleSetting)); using (System.IO.FileStream fs=new System.IO.FileStream(path, System.IO.FileMode.Create)) { xs.Serialize(fs, this); } }}

      SimpleSetting 類中包含了從XML文件中讀取設(shè)置和將設(shè)置保存到XML文件的方法。為了使用該類,我們只需要在程序中創(chuàng)建一個 SimpleSetting 對象,然后調(diào)用其 SaveLoad 方法即可。這樣,我們就可以在.NET桌面程序中使用自定義的XML配置文件來保存設(shè)置了。

      4. 最后

      本文詳細(xì)介紹了如何在.NET桌面程序中使用自定義的 XML 配置文件以及為何選擇 XML 作為配置文件格式。同時,我們還探討了其他常見的配置文件格式,如 JSON、INI 和 YAML,以及它們的優(yōu)缺點(diǎn)和相關(guān)的 NuGet 類庫。希望這篇文章能幫助你找到適合你項(xiàng)目需求的配置文件解決方案!

      References

      [1] HackerScreenSaver: https://github.com/sangyuxiaowu/HackerScreenSaver?wt.mc_id=DT-MVP-5005195
      [2] 相關(guān)遷移教程: https://learn.microsoft.com/zh-cn/dotnet/standard/serialization/system-text-json/migrate-from-newtonsoft?wt.mc_id=DT-MVP-5005195

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權(quán)所有