CODE-透過程式修改App.config

小小的範例程式。

手上有個排程定期執行的程式(為了做到執行時不顯示Console視窗,我選擇做成Window Form專案,再讓Form1隱形[補充2009-12-04: 此處用Form1是因為我還是寫了一個方便開發測試Debbug專用的UI,事實上連Form1可以不用建立,直接執行必要的邏輯即可,謝謝],設定都放在MyApp.exe.config的AppSettings裡。但其中有些設定值較複雜,需要注意是否符合規則、或是要加密後儲存。由於不想另外寫UI或獨立設定程式,於是我決定用"MyApp.exe set configKey configValue"命令列執行方式將設定值檢核及加密邏輯內建在同一支執行檔裡。

以下就是我的範例,供大家參考指教。(主要是借重Configuration.Save Method將修改值寫回)

[STAThread]
static void Main(string[] args)
{
    if (args.Length == 3)
    {
        string mode = args[0];
        string configKey = args[1];
        string configValue = args[2];
        if (mode == "set")
        {
            System.Configuration.Configuration conf =
                ConfigurationManager.OpenExeConfiguration(
                    ConfigurationUserLevel.None);
            //... Logic of conversion or checking on configValue ...
            if (conf.AppSettings.Settings[configKey] == null)
                conf.AppSettings.Settings.Add(configKey, configValue);
            else
                conf.AppSettings.Settings[configKey].Value = configValue;
            conf.Save(ConfigurationSaveMode.Modified);
        }
        MessageBox.Show("Config [" + configKey + "] is set!");
        return;
    }
 
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
}
歡迎推文分享:
Published 03 December 2009 09:00 PM 由 Jeffrey
Filed under: ,
Views: 11,470



意見

# VampireNeo said on 03 December, 2009 08:09 AM

於是我決定用"MyApp.exe.config set configKey configValue"命令列執行方式

應該是 "MyApp.exe set configKey configValue" ?

# Phoenix said on 03 December, 2009 08:16 AM

如果Form是沒必要的,其實連new都不用,就會變成無視窗的程式了0.0

# Jeffrey said on 03 December, 2009 03:42 PM

to VampireNeo, 嘿... 又打錯字了,感謝指正。

to Phoenix,  此處用Form1是因為我還是寫了一個方便開發測試Debbug專用的UI,事實上的確連Form1都可以不用建立,謝謝補充。

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<December 2009>
SunMonTueWedThuFriSat
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789
 
RSS
創用 CC 授權條款
【廣告】
twMVC
最新回應

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication