簡體   English   中英

如何正確使用app.config?

[英]How to use properly app.config?

目前,我已經在我的庫中創建了一個像這樣構建的app.config文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
    </startup>
<appSettings>
  <add key ="DATE" value="dd/MM/yyyy"/>
  <add key ="TIME" value="HH:mm|HH:mm:ss"/>
  <add key ="DURATION" value="ss|mm:ss|hh:mm:ss|hhmmss"/>
  <add key ="LAT_LONG" value="dd.ddddd[N,S]dd.ddddd[E,W]|[-]dd.ddddd°,[-]dd.ddddd°|[-]ddmmss.ssss, [-]dddmmss.ssss "/>
</appSettings>
</configuration>

我需要我的用戶通過添加和/或刪除格式,甚至向文件添加新設置來修改此設置。 我正在使用ConfigurationManager來做到這一點。

現在,我懷疑這在部署此應用程序時是否會真正起作用,因為,如果我了解我在以前的研究中所讀的內容,則無法在運行時修改appSettings 我必須使用userSettings嗎? 在那種情況下,我可以直接將它們添加到此app.Config文件中嗎? userSettings如何工作? 我可以使用ConfigurationManager與他們互動嗎?

編輯:好的,我知道我問了很多東西,所以讓事情變得簡單。 我可以將userSettings節點添加到我的app.Config嗎? 如果是,我的應用程序對它們有效嗎?

當您要設置用戶個性化配置時,可以遵循從MS為我們(開發人員)准備的簡便方法。

在這種情況下,您只需使用項目的“屬性”菜單定義初始設置,然后選擇“設置”。

在這里您可以定義兩種設置。 應用程序設置(對該計算機上的所有用戶均有效,無法通過代碼輕松修改)和用戶設置。 這些最后一個保持逐個用戶分開,並寫在用戶文件夾層次結構內客戶端計算機上某個obsure文件夾中的某個位置。

可以使用Settings類在運行時更改和保存這些設置。
因此,假設您在項目的“設置”配置中添加了字符串類型和范圍用戶之類的日期格式設置。

現在,您可以使用

string format = Settings.Default.DateFormat;
....
format = "dd/MM/yy";
Settings.Default.DateFormat = format;
Settings.Default.Save();

這只是讓您開始的基礎。 當您需要升級存儲在用戶設置文件中的信息時,還應該查看此問題和答案以處理這種情況。

我建議您考慮采取一些不同的方法。 即,不使用appconfig,而是不使用文本文件或數據庫(對於該用例而言可能會增加開銷)來存儲用戶特定的設置。 AppConfig用於特定於應用程序的東西,無論如何,將用戶的關注點分開可能是一個好主意。 將用戶設置作為json對象存儲在文本文件中,並將其直接序列化為UserSettings對象。

但是,請查看ServiceStack.Text來處理AppSettings,對POCO對象進行序列化/反序列化設置。 這是有關如何將api用於AppSettings 的示例

但是同樣,您無需使用AppSettings,就可以使用相同的api從文本文件進行讀取/寫入並序列化為您選擇的對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM