[英]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.