您目前已離線,請等候您的網際網路重新連線

如何儲存及使用 Visual C#,從應用程式組態檔擷取自訂資訊

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:815786
本文章的有 Microsoft Visual Basic.NET] 版本請參閱 313405
這份文件參照到下列的 Microsoft.NET Framework 類別庫的命名空間:       
  • System.Configuration
結論
本文將告訴您如何在您可以稍後在 Run Time 時擷取由其相關聯的應用程式的組態 (.config) 檔中儲存自訂的資訊。當您必須定義應用程式相關聯的資料時,這會很有幫助。

back to the top

需求

下列清單列出建議的硬體、 軟體、 網路基礎結構及您需要的服務套件:
  • Microsoft Windows 2000、 Windows XP、 Windows Server 2003,Windows Vista 或 Windows Server 2008
  • Microsoft Visual C#
本文假設您已熟悉下列主題:
  • 可延伸標記語言 (XML)
  • .NET 組態檔
back to the top

建立主控台應用程式,會讀取組態檔的內容

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

System.Configuration 和 Microsoft.NET Framework 中的 System.Collections.Specialized 命名空間包含必要的類別,可在 Run Time 期間從.NET 應用程式組態檔中擷取資訊。

若要建立主控台應用程式,在執行階段讀取關聯的組態檔的內容,請依照下列步驟執行:
  1. 啟動 Visual Studio.NET 或 Visual Studio 2005。
  2. 在 [檔案] 功能表上指向 [新增],然後按一下 [專案]。
  3. 按一下 [Visual C#專案類型,] 下,然後按一下 [範本] 下方的 [主控台應用程式。為專案的名稱 ConConfig。預設情況下,Visual C# 建立名為程式的類別。

    附註在 Visual 的 Studio.NET 2003年 專案類型,] 下按一下 [Visual C# 專案,然後按一下 [範本] 下方的 [主控台應用程式]。為專案的名稱 ConConfig。預設情況下,Visual C# 建立名為類別 1 的類別。
  4. 請確定可以看見 [方案總管] 視窗。如果看不到它,請按 CTRL + ALT + L 組合鍵。
  5. 在 [方案總管] 中以滑鼠右鍵按一下專案名稱,按一下 [新增],然後再按一下 [新項目]。
  6. 在 [加入新項目] 清單按一下以選取 [XML 檔
  7. 在 [名稱] 文字方塊中輸入 App.config,然後按一下 [新增]。

    附註在 Visual 的 Studio.NET 2003年中按一下 [開啟]。
  8. 您可以使用應用程式組態檔來收集索引鍵/值格式儲存的自訂應用程式設定。您可以包含 <add><appsettings>中的項目 關聯的組態檔的區段。每個索引鍵/值組有一個 <add> 項目。一個 <add> 項目具有下列格式:
    <add key="Key0" value="0" />
    新增一個 <appsettings><add>的區段 組態檔 <configuration>之間的項目 and </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>中保留從組態檔機碼值 區段組態] 檔案的宣告 主要 區段中的字串變數,如下所示:
     string  sAttr ;
  12. <appsettings>擷取指定索引鍵的值 區段使用 ConfigurationManager 類別的 AppSettings 屬性的 Get 方法,組態] 檔案。ConfigurationManager 類別是在 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 屬性時,應用程式會傳回所有相關聯的索引鍵/值組。 這些配對都儲存在 NameValueCollection 型別。NameValueCollection 包含應用程式會擷取每個索引鍵的索引鍵/值項目。NameValueCollection 類別是在
    NameValueCollection sAll ;sAll = ConfigurationManager.AppSettings;
    System.Collections.Specialized 命名空間。
  15. NameValueCollectionAllKeys 屬性參考字串陣列,具有應用程式會擷取每個索引鍵的項目。使用 foreach 建構以逐一查看 AllKeys 陣列來存取應用程式會擷取每個索引鍵。AllKeys 中的每個索引鍵項目是字串資料型別。

    foreach] 建構內使用 Console.WriteLine,以顯示索引鍵和其相關聯的值 [主控台] 視窗。目前應用程式處理的索引鍵是"s"中。使用這在 sAllNameValueCollection 中以索引來取得
       foreach (string s in sAll.AllKeys)      Console.WriteLine("Key: "+ s + " Value: " + sAll.Get(s));   Console.ReadLine();
    其相關聯的值。
back to the top

完成程式碼清單

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,變更 ConfigurationSettingsConfigurationManager 類別的所有執行個體。
back to the top

完整的設定檔清單 (ConConfig.exe.config)

<?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>
back to the top

請確認它可以運作

按下 F5 以執行程式碼。[主控台] 視窗應該會顯示索引鍵/值組,從 <appsettings> 的關聯的組態區段的檔案,如下所示:
The value of Key0: 0Key: Key0 Value:0Key: Key1 Value:1Key: Key2 Value:2		
back to the top

疑難排解

  • 組態檔儲存成 XML 格式。請確認您遵循所有的 XML 語法規則。請記住 XML 會區分大小寫。如果 XML 的語式不正確,或拼字錯誤的項目,您會收到 System.Configuration.Configuration 例外狀況。

    範例如果您新增一個 <add>的索引鍵屬性 具有一個大寫"K"代替小寫 「 k 」 項目或如果 <appsettings> 區段會顯示為 <appsettings> (具有一個大寫"A"代替一個小寫"a"),您會收到錯誤訊息。
  • 組態檔必須儲存在與它相關聯的應用程式相同的資料夾。
  • 組態檔名稱,您必須使用下列語法:
    ApplicationNameApplicationType.config
    其中 ApplicationNameApplicationType 應用程式的名稱是應用程式 (,例如.exe) 類型而.config 是必要的尾碼。
back to the top
参考
如需詳細資訊,請參閱下列 Microsoft 開發人員網路 MSDN 網站:back to the top

警告:本文為自動翻譯

內容

文章識別碼:815786 - 最後檢閱時間:07/16/2008 21:00:59 - 修訂: 3.1

Microsoft Visual C# 2008 Express Edition, Microsoft Visual C# 2005 Express Edition, Microsoft Visual C# .NET 2003 標準版, Microsoft Visual C# .NET 2002 Standard Edition

  • kbmt kbsweptvs2008 kbcollections kbcollectionclass kbconfig kbnamespace kbhowtomaster kbprogramming KB815786 KbMtzh
意見反應
ent.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">