使用 Visual c # 從應用程式佈建檔儲存及取回自訂資訊

本文說明如何從設定檔儲存自訂資訊,供您在執行時間使用其相關聯的應用程式來檢索。 當您必須定義與應用程式相關聯的資料時,這會很有説明。

原始產品版本:   Visual C#
原始 KB 編號:   815786

需求

下列清單概要說明所需的建議硬體和軟體:

  • Microsoft Windows
  • Visual C#

本文假設您熟悉下列主題:

  • 可延伸標記語言 (XML)
  • .NET 設定檔

建立讀取設定檔的主控台應用程式

您可以將應用程式設定儲存在與應用程式相關聯的設定檔中。 設定檔會以 XML 格式儲存。

System.Configuration System.Collections.Specialized .Net Framework 中的和命名空間包含必要的類別,以在執行時間從 .net 應用程式佈建檔中取得資訊。

若要建立主控台應用程式,以在執行時間讀取相關聯之設定檔的內容,請遵循下列步驟:

  1. 啟動 Visual Studio .NET 或 Visual Studio。

  2. 在 [檔案] 功能表上,指向 [新增],然後選取 [專案]。

  3. 選取 [專案類型] 底下的 [ Visual c # ],然後選取 [範本] 底下的 [主控台應用 為專案 ConConfig命名。 根據預設,Visual c # 會建立名為 Program的類別。

    注意

    在 Visual Studio .NET 中,選取 [專案類型] 底下的 [ Visual c # 專案],然後選取 [範本] 底下的 [主控台應用程式 為專案 ConConfig命名。 Visual c # 預設會建立一個名為 Class1的類別。

  4. 請確定 [ 解決方案資源管理 ] 視窗是顯示的。 如果看不到,請按 CTRL + ALT + L 複合鍵。

  5. 在 [方案資源管理器] 的專案名稱上按一下滑鼠右鍵,選取 [新增],**然後選取 [**新增專案]。

  6. 在 [ 新增專案 ] 清單中,選取 [ XML 檔]。

  7. 在 [ 名稱 ] 文字方塊中,輸入 App.config,然後選取 [ 新增]。

  8. 您可以使用應用程式佈建檔來收集以機碼/值格式儲存的自訂應用程式設定。 您可以 <add><appSettings> 相關聯的設定檔的區段中包含元素。 每個索引鍵/值對都有一個 <add> 元素。 <add>元素具有下列格式:

    <add key="Key0" value="0" />
    

    在設定檔 <appSettings> <add> 的 and 標記之間新增包含元素的 <configuration> 區段 </configuration>

    例如,下列設定檔包含 <appSettings> 的區段會指定三個索引鍵/值組:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <appSettings>
            <add key="Key0" value="0" />
            <add key="Key1" value="1" />
            <add key="Key2" value="2" />
        </appSettings>
    </configuration>
    
  9. 在 [ 解決方案資源管理器] 中,按兩下 [ Program.cs ] 以顯示程式碼視窗。 將下列語句新增至您的程式碼模組。

    注意

    這些語句必須出現在檔案中的任何其他語句之前。

    using System.Configuration;
    using System.Collections.Specialized;
    
  10. 將參照新增至 System.Configuration.dll。 如果要執行這項操作,請依照下列步驟執行:

    1. 在 [ 專案 ] 功能表中,選取 [ 新增參考]。
    2. 在 [ 新增參考 ] 對話方塊中,選取 [ .net ] 索引標籤。
    3. 尋找並選取的元件名稱 System.Configuration
    4. 選取 [確定]
  11. 若要在設定檔的區段中保存來自設定檔索引鍵的值 <appSettings> ,請在區段中宣告字串變數,如下所示 Main

    string sAttr;
    
  12. 若要從設定檔的區段中取得指定之機碼的值 <appSettings> ,請使用 Get AppSettings 類別的屬性方法 ConfigurationManagerConfigurationManager類別在 System.Configuration 命名空間中。 當 AppSettings.Get 方法收到包含索引鍵的字串輸入參數時,應用程式會檢索與該鍵相關聯的值。

    下列程式碼會 Key0 從關聯的設定檔中檢索屬性值。 然後,此程式碼會將此值放置在 sAttr 字串變數中。 如果此值不存在索引鍵,則不會儲存任何專案 sAttr

    sAttr = ConfigurationManager.AppSettings.Get("Key0");
    
  13. 若要顯示應用程式在主控台視窗中所檢索的值,請使用 Console.WriteLine 如下:

    Console.WriteLine("The value of Key0 is "+sAttr);
    
  14. 您可以對屬性使用一個參照, AppSettings 以檢索區段中的所有索引鍵/值組 <appSettings> 。 當您使用 AppSettings 屬性時,應用程式會傳回所有相關聯的索引鍵/值組。 這些成對儲存于類型中 NameValueCollectionNameValueCollection包含應用程式所檢索之每個索引鍵的索引鍵/值專案。 NameValueCollection類別在 System.Collections.Specialized 命名空間中。

    NameValueCollection sAll ;
    sAll = ConfigurationManager.AppSettings;
    
  15. AllKeys屬性參照的 NameValueCollection 字串陣列,具有應用程式所檢索之每個索引鍵的專案。 使用 foreach 構造來迴圈 AllKeys 訪問陣列,以存取應用程式所檢索的每個索引鍵。 中的每個索引鍵 AllKeys 都是 string 資料類型。

    foreach 結構內,用 Console.WriteLine 來在主控台視窗中顯示機碼及其關聯的值。 應用程式處理的目前機碼 s 。 在中使用此索引 sAllNameValueCollection 可取得其相關聯的值。

     foreach (string s in sAll.AllKeys)
     Console.WriteLine("Key: "+ s + " Value: " + sAll.Get(s));
     Console.ReadLine();
    

完整程式代碼清單

using System;
using System.Configuration;
using System.Collections.Specialized;

namespace ConConfig
{
    class Program
    {
        static void Main(string[] args)
        {
            string sAttr;

            // Read a particular key from the config file 
            sAttr = ConfigurationManager.AppSettings.Get("Key0");
            Console.WriteLine("The value of Key0: " + sAttr);

            // Read all the keys from the config file
            NameValueCollection sAll;
            sAll = ConfigurationManager.AppSettings;

            foreach (string s in sAll.AllKeys)
            Console.WriteLine("Key: " + s + " Value: " + sAll.Get(s));
            Console.ReadLine();
        }
    }
}

注意

這段程式碼是針對 .NET Framework 2.0。 如果您使用的是 .NET Framework 1.0 或 .NET Framework 1.1,請將此類別的所有實例變更 ConfigurationManagerConfigurationSettings

完成 # A0 ( 的配置檔案清單)

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <add key="Key0" value="0" />
        <add key="Key1" value="1" />
        <add key="Key2" value="2" />
    </appSettings>
</configuration>

驗證它是否正常運作

按 F5 執行程式碼。 主控台視窗應該會顯示相關設定檔區段中的索引鍵/值組, <appSettings> 如下所示:

The value of Key0: 0
Key: Key0 Value:0
Key: Key1 Value:1
Key: Key2 Value:2

疑難排解

  • 設定檔會以 XML 格式儲存。 請務必遵循所有的 XML 語法規則。 請記住,XML 是區分大小寫的。 如果 XML 格式不正確,或如果元素拼錯,您會收到 System.Configuration.Configuration 例外狀況。

    例如,如果您 <add> 以大寫字母(而非小寫 k)來新增元素的 key 屬性,或者如果該 <appSettings> 區段以 <AppSettings> 大寫的 a (而非小寫 a a) )顯示為 (,您會收到錯誤訊息。

  • 設定檔必須儲存在與其相關聯的應用程式相同的資料夾中。

  • 您必須對設定檔案名使用下列語法:
    <ApplicationName>.<ApplicationType>.配置

    其中 <ApplicationName> 是應用程式的名稱。 <ApplicationType> 是應用程式的類型 (例如 .exe) ,而 .config 是必要的尾碼。

參考