• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            我希望你是我獨(dú)家記憶

            一段永遠(yuǎn)封存的記憶,隨風(fēng)而去
            posts - 263, comments - 31, trackbacks - 0, articles - 3
               :: 首頁(yè) :: 新隨筆 ::  :: 聚合  :: 管理

            C#中使用設(shè)置 Properties.Settings.Default

            Posted on 2011-01-05 16:13 Hero 閱讀(9848) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C#積累

            簡(jiǎn)介

            .NET Framework 2.0 允許您創(chuàng)建和訪問(wèn)在各應(yīng)用程序執(zhí)行會(huì)話之間保持的值。這些值稱為設(shè)置。設(shè)置可以表示用戶首選項(xiàng),也可表示應(yīng)用程序需要使用的寶貴信息。例如,可以創(chuàng)建一系列設(shè)置來(lái)存儲(chǔ)應(yīng)用程序配色方案的用戶首選項(xiàng)。也可以存儲(chǔ)指定應(yīng)用程序所使用數(shù)據(jù)庫(kù)的連接字符串。通過(guò)設(shè)置不但可以保持對(duì)于代碼外部的應(yīng)用程序至關(guān)重要的信息,而且還可以創(chuàng)建分別存儲(chǔ)各用戶首選項(xiàng)的配置文件。

            Visual Basic 2005 使用 My 命名空間提供了一種顯而易見(jiàn)的設(shè)置訪問(wèn)機(jī)制,而在 Visual C# 2005 中沒(méi)有類似的命名空間,因而訪問(wèn)設(shè)置稍微要困難一些。盡管如此,C# 用戶仍可通過(guò)訪問(wèn) Properties 命名空間來(lái)使用設(shè)置。在閱讀本文的過(guò)程中,您將會(huì)了解應(yīng)用程序設(shè)置與用戶設(shè)置之間的差異、如何在設(shè)計(jì)時(shí)創(chuàng)建新的設(shè)置、如何在運(yùn)行時(shí)訪問(wèn)設(shè)置,以及如何將多組設(shè)置合并到應(yīng)用程序中。

            應(yīng)用程序及用戶設(shè)置

            設(shè)置具有四個(gè)屬性:

            Name(名稱):設(shè)置的“Name”(名稱)屬性是指用于在運(yùn)行時(shí)訪問(wèn)設(shè)置值的名稱。

            Type(類型):設(shè)置的“Type”(類型)是指設(shè)置所表示的 .NET Framework 類型。設(shè)置可以是任意類型。例如,存放用戶顏色首選項(xiàng)的設(shè)置將會(huì)是 System.Color 類型。

            Scope(作用域):“Scope”(作用域)屬性表示如何在運(yùn)行時(shí)訪問(wèn)設(shè)置。“Scope”(作用域)屬性有兩個(gè)可能的值:“Application”(應(yīng)用程序)和“User”(用戶)。本部分將會(huì)對(duì)這些值進(jìn)行更多討論。

            Value(值):“Value”(值)屬性表示訪問(wèn)設(shè)置時(shí)返回的值。該值將為“Type”(類型)屬性所表示的類型。

            這些屬性中的大多數(shù)都相當(dāng)容易理解。“Name”(名稱)、“Type”(類型)和“Value”(值)的概念均應(yīng)為大多數(shù)程序員所熟知。“Scope”(作用域)屬性需要稍加說(shuō)明。設(shè)置具有兩個(gè)可能的作用域:應(yīng)用程序作用域和用戶作用域。具有應(yīng)用程序作用域的設(shè)置表示無(wú)論用戶首選項(xiàng)為何應(yīng)用程序都會(huì)使用的設(shè)置,而具有用戶作用域的設(shè)置對(duì)實(shí)際應(yīng)用程序來(lái)說(shuō)通常并不是很重要,它們很可能與首選項(xiàng)或其他非關(guān)鍵值關(guān)聯(lián)。

            應(yīng)用程序作用域設(shè)置與用戶作用域設(shè)置之間的重要區(qū)別是,用戶作用域設(shè)置在運(yùn)行時(shí)為讀/寫(xiě),并且可在代碼中對(duì)其值進(jìn)行更改和保存。應(yīng)用程序作用域設(shè)置在運(yùn)行時(shí)為只讀。雖然可以讀取,但是不能對(duì)其進(jìn)行寫(xiě)入。具有應(yīng)用程序作用域的設(shè)置只能在設(shè)計(jì)時(shí)或通過(guò)手動(dòng)修改設(shè)置文件進(jìn)行更改。

            在設(shè)計(jì)時(shí)創(chuàng)建新設(shè)置

            可以使用設(shè)置設(shè)計(jì)器在設(shè)計(jì)時(shí)創(chuàng)建新的設(shè)置。設(shè)置設(shè)計(jì)器采用了大家熟悉的網(wǎng)格式界面,通過(guò)它可以創(chuàng)建新設(shè)置并指定這些設(shè)置的屬性。必須為每個(gè)新設(shè)置指定“Name”(名稱)、“Type”(類型)、“Scope”(作用域)和“Value”(值)。創(chuàng)建了設(shè)置后,即可使用本文稍后介紹的機(jī)制在代碼中對(duì)其進(jìn)行評(píng)估。

            在設(shè)計(jì)時(shí)創(chuàng)建新設(shè)置的步驟

            在“Solution Explorer”(解決方案資源管理器)中,展開(kāi)項(xiàng)目的“Properties”(屬性)節(jié)點(diǎn)。

            在“Solution Explorer”(解決方案資源管理器)中,雙擊要在其中添加新設(shè)置的 .settings 文件。此文件的默認(rèn)名稱是 Settings.settings。

            在設(shè)置設(shè)計(jì)器中,為設(shè)置設(shè)定“Name”(名稱)、“Type”(類型)、“Scope”(作用域)和“Value”(值)。每行代表單個(gè)設(shè)置。圖 1 給出了一個(gè)設(shè)置設(shè)計(jì)器示例。

            .

            圖 1. Visual Studio 2005 中的設(shè)置設(shè)計(jì)器

            在設(shè)計(jì)時(shí)更改現(xiàn)有設(shè)置的值

            還可以按以下步驟所述,使用設(shè)置設(shè)計(jì)器在設(shè)計(jì)時(shí)更改預(yù)先存在設(shè)置的值:

            在設(shè)計(jì)時(shí)更改現(xiàn)有設(shè)置值的步驟

            在“Solution Explorer”(解決方案資源管理器)中,展開(kāi)項(xiàng)目的“Properties”(屬性)節(jié)點(diǎn)。

            在“Solution Explorer”(解決方案資源管理器)中,雙擊要在其中添加新設(shè)置的 .settings 文件。此文件的默認(rèn)名稱是 Settings.settings。

            在設(shè)置設(shè)計(jì)器中,找到要更改的設(shè)置,然后在“Value”(值)列中鍵入新值。

            在應(yīng)用程序會(huì)話之間更改設(shè)置值

            有時(shí),在編譯和部署了應(yīng)用程序后,可能需要在應(yīng)用程序會(huì)話之間更改設(shè)置值。例如,可能需要更改連接字符串,使其指向正確的數(shù)據(jù)庫(kù)位置。由于設(shè)計(jì)時(shí)工具在應(yīng)用程序編譯和部署后不可用,所以必須手動(dòng)在文件中更改設(shè)置值。

            在應(yīng)用程序會(huì)話間更改設(shè)置值的步驟

            使用 Microsoft 記事本或其他某種文本或 XML 編輯器,打開(kāi)與應(yīng)用程序關(guān)聯(lián)的 <AssemblyName>.exe.config 文件。

            找到要更改的設(shè)置條目。它應(yīng)看似以下示例:

            <setting name="Setting" serializeAs="String">
                        <value>這是設(shè)置值</value>
                        </setting>
                        

            為設(shè)置鍵入新值,然后保存該文件。

            在運(yùn)行時(shí)使用設(shè)置

            運(yùn)行時(shí)應(yīng)用程序可以通過(guò)代碼使用設(shè)置。具有應(yīng)用程序作用域的設(shè)置值能夠以只讀方式進(jìn)行訪問(wèn),而用戶作用域設(shè)置的值可以進(jìn)行讀寫(xiě)。在 C# 中可以通過(guò) Properties 命名空間使用設(shè)置。

            在運(yùn)行時(shí)讀取設(shè)置

            可在運(yùn)行時(shí)使用 Properties 命名空間讀取應(yīng)用程序作用域及用戶作用域設(shè)置。Properties 命名空間通過(guò)Properties.Settings.Default 對(duì)象公開(kāi)了項(xiàng)目的所有默認(rèn)設(shè)置。編寫(xiě)使用設(shè)置的代碼時(shí),所有設(shè)置都會(huì)出現(xiàn)在 IntelliSense 中并且被強(qiáng)類型化。因此,舉例來(lái)說(shuō),如果設(shè)置的類型為 System.Drawing.Color,則無(wú)需先對(duì)其進(jìn)行強(qiáng)制類型轉(zhuǎn)換即可使用該設(shè)置,如下例所示:

            this.BackColor = Properties.Settings.Default.myColor;
            

            在運(yùn)行時(shí)保存用戶設(shè)置

            應(yīng)用程序作用域設(shè)置是只讀的,只能在設(shè)計(jì)時(shí)或通過(guò)在應(yīng)用程序會(huì)話之間修改 <AssemblyName>.exe.config 文件來(lái)進(jìn)行更改。然而,用戶作用域設(shè)置卻可以在運(yùn)行時(shí)進(jìn)行寫(xiě)入,就像更改任何屬性值那樣。新值會(huì)在應(yīng)用程序會(huì)話持續(xù)期間一直保持下去。可以通過(guò)調(diào)用 Settings.Save 方法來(lái)保持在應(yīng)用程序會(huì)話之間對(duì)用戶設(shè)置所做的更改。這些設(shè)置保存在 User.config 文件中。

            在運(yùn)行時(shí)寫(xiě)入和保持用戶設(shè)置的步驟

            訪問(wèn)用戶設(shè)置并為其分配新值,如下例所示:

            Properties.Settings.Default.myColor = Color.AliceBlue;
                        

            如果要保持在應(yīng)用程序會(huì)話之間對(duì)用戶設(shè)置所做的更改,請(qǐng)調(diào)用 Save 方法,如以下代碼所示:

            Properties.Settings.Default.Save();
                        

            交替使用多組設(shè)置

            在某些情況下,可能需要在應(yīng)用程序中使用多組設(shè)置。例如,如果正在開(kāi)發(fā)的應(yīng)用程序中有某組設(shè)置預(yù)計(jì)會(huì)頻繁進(jìn)行更改,則比較明智的做法是將其全都分成單個(gè)文件,這樣便可成批替換相應(yīng)文件,而不會(huì)使其他設(shè)置受到影響。Visual Studio 2005 允許向項(xiàng)目中添加多組設(shè)置。可以通過(guò)各自節(jié)點(diǎn)中生成的設(shè)置對(duì)象來(lái)訪問(wèn)各組附加設(shè)置。例如,如果向項(xiàng)目中添加了名為 SpecialSettings 的一組設(shè)置,則要通過(guò)Properties.SpecialSettings 對(duì)象來(lái)訪問(wèn)該組設(shè)置包含在代碼中的設(shè)置。

            添加附加設(shè)置組的步驟

            從“Project”(項(xiàng)目)菜單中選擇“Add New Item”(添加新項(xiàng))。將會(huì)打開(kāi)“Add New Item”(添加新項(xiàng))對(duì)話框。

            在“Add New Item”(添加新項(xiàng))對(duì)話框中,選擇“Settings File”(設(shè)置文件)。

            在“Name”(名稱)框中為設(shè)置文件命名,如 SpecialSettings.settings,然后單擊“Add”(添加),將文件添加到解決方案中。

            在“Solution Explorer”(解決方案資源管理器)中,將新的設(shè)置文件拖入到 Properties 文件夾中。這樣便可在代碼中使用新的設(shè)置。

            如在其他任何設(shè)置文件中那樣在此文件中添加和使用設(shè)置。可通過(guò) Properties.SpecialSettings 對(duì)象訪問(wèn)此組設(shè)置。

            結(jié)束語(yǔ)

            在本文中,您已了解如何在 C# 應(yīng)用程序中使用設(shè)置來(lái)存儲(chǔ)和管理從屬于應(yīng)用程序和用戶的設(shè)置。您還學(xué)會(huì)了如何在設(shè)計(jì)時(shí)添加設(shè)置、如何在運(yùn)行時(shí)讀寫(xiě)設(shè)置,以及如何將多組附加設(shè)置合并到應(yīng)用程序中。

            无码人妻久久一区二区三区免费丨 | 欧美国产精品久久高清| 国产亚洲精午夜久久久久久| 久久精品国产亚洲av瑜伽| 综合久久精品色| 国产精品一区二区久久 | 久久九九久精品国产| 久久久久久久精品成人热色戒 | 久久精品国产亚洲AV蜜臀色欲| 69SEX久久精品国产麻豆| 久久精品国产72国产精福利| 国内精品久久久久影院亚洲| 国产精品九九九久久九九| 亚洲综合久久夜AV | 亚洲成人精品久久| 男女久久久国产一区二区三区| 伊人色综合久久| 精品久久久久中文字幕日本| 久久一区二区三区免费| 国产国产成人精品久久| 一本色道久久综合亚洲精品| 久久毛片免费看一区二区三区| 成人资源影音先锋久久资源网| 亚洲日本久久久午夜精品| 精品欧美一区二区三区久久久 | 久久久久久无码Av成人影院| 热久久最新网站获取| 久久久久噜噜噜亚洲熟女综合 | 久久婷婷人人澡人人爽人人爱| 狠狠综合久久综合中文88| 久久99国产精品久久| 久久Av无码精品人妻系列| 亚洲中文精品久久久久久不卡| 亚洲国产成人精品91久久久 | 久久久91人妻无码精品蜜桃HD| 91精品国产高清91久久久久久| 午夜精品久久久久久99热| 亚洲午夜久久久久久噜噜噜| 久久久久亚洲精品日久生情| 中文字幕久久精品无码| 性欧美大战久久久久久久久|