2017-06-28 41 views
0

目前我在圖書館創建builted像這樣的一個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嗎?如果是,我的申請是否真的在他們身上工作?

+3

這將是太寬泛,脫離主題Ø寫在NET的這個關鍵部分的教程。你可以在這裏找到一個衆所周知的教程[破解.NET 2.0配置之謎](https://www.codeproject.com/Articles/19675/Cracking-the-Mysteries-of-NET-2-0-Configuration#duplicate = 0) – Steve

+0

[WPF中的用戶設置](https://blogs.msdn.microsoft。com/patrickdanino/2008/07/23/user-settings-in-wpf /) – stuartd

+0

@stuartd是的好,但設置和app.config是一樣的東西?我不這麼認爲 –

回答

0

當你想設置一個用戶個性化的配置,你可以遵循從MS爲我們(開發商)編寫容易的道路。

在這種情況下,你只需用你的項目的屬性菜單定義你的初始設置,然後選擇設置。

在這裏您可以定義兩種設置。應用程序設置(對該機器上的所有用戶有效,且不易從代碼修改)和用戶設置。這些最後一個按用戶分開保存,並在用戶文件夾層次結構中的客戶機上的某個obsure文件夾中寫入。

這些設置是可以改變的,並使用設置類在運行時保存。
因此,假設您已經在項目的Settings配置中添加了類似字符串DateFormat和範圍User的設置。

現在你可以用

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

找回這只是爲了讓你開始的基本。你也應該看看this question and answer處理這種情況,當你需要升級存儲在用戶設置信息文件

0

我建議你考慮以不同的方式接近這一點。即不使用appconfig,爲什麼不使用文本文件或數據庫(對於此用例可能會有太多開銷)來存儲用戶特定的設置。 AppConfig適用於特定於應用程序的內容,因此無論如何將用戶關注點分離出來可能是一個好主意。將用戶設置存儲爲文本文件中的json對象,並將其直接序列化到您的UserSettings對象。

然而,看看ServiceStack.Text來處理AppSettings,序列化/ DeSerializing設置到您的POCO對象。這裏的an example如何使用AppSettings的API。

但同樣,而不是使用AppSettings的,你可以閱讀從文本文件/寫和序列化到您選擇的對象,仍然使用相同的API。