本文將告訴您,如何在您可以稍後在 Run Time 時擷取由其相關聯的應用程式的組態 (.config) 檔中儲存自訂的資訊。當您需要定義應用程式相關聯的資料時,這是一個有幫助。
需求
下列清單列出建議的硬體、 軟體、 網路基礎結構及您需要的服務套件:
- Microsoft Windows 2000]、 [Microsoft Windows XP] 或 [Microsoft Windows Server 2003
- Microsoft Visual Studio.NET (2002) 或 Microsoft Visual Studio.NET 2003) 或 Microsoft Visual Studio 2005
本文假設您已熟悉下列主題:
建立會讀取的主控台應用程式組態檔的內容
您可以儲存應用程式相關聯之組態檔內的應用程式設定。組態檔儲存在 XML 格式。
System.Configuration 和 Microsoft.NET Framework 中的
System.Collections.Specialized 命名空間包含必要的類別,可在 Run Time 期間從.NET 應用程式組態檔中擷取資訊。
若要建立主控台應用程式,在執行階段讀取關聯的組態檔的內容,請依照下列步驟執行:
- 啟動 Visual Studio.NET 或 Visual Studio 2005。
- 建立新的主控台應用程式專案,名為 ConConfig Visual Basic.NET 或 Visual Basic 2005 中。Visual Basic.NET 或 Visual Basic 2005 會建立預設名為 Module1 的模組。
- 以滑鼠右鍵按一下 [ConConfig 專案 資料夾,指向 [新增],],然後再按一下 [加入新項目。
附註在 Visual 的 Studio 2005 中以滑鼠右鍵按一下 [ConConfig 專案 資料夾,指向 [新增],],然後再按一下 [新增項目。 - 在 [加入新項目] 對話方塊選取 [應用程式組態檔] 範本、 按一下 [開啟舊檔,然後再將 App.config 檔案加入至專案。
附註在 Visual Studio.NET 或 Visual Studio 2005 IDE 複製的資料夾位置可執行檔會編譯,並且會重新命名在 <ApplicationName><Application
Type>.config 格式。 - 您可以使用應用程式組態檔來收集索引鍵/值格式儲存的自訂應用程式設定。您可以包含 <add><appsettings>中的項目 關聯的組態檔的區段。每個索引鍵/值組有一個 <add> 項目。一個 <add> 項目具有下列格式:
<add key="theKey" value="theValue" />
新增一個 <appsettings><add>的區段 組態檔 <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>
- 在 [方案總管中連按兩下 Module1.vb 以顯示 [Module1] 程式碼視窗]。將下列的陳述式加入至程式碼模組:
附註這些陳述式必須出現在檔案
Imports System.Configuration
Imports System.Collections.Specialized
中的任何其他陳述式之前 - 在 Sub Main] 程序維度中 <appsettings>保留從組態檔機碼值的字串變數 組態檔的區段:
- 從 <appsettings>擷取指定索引鍵的值 區段組態] 檔案的使用 ConfigurationSettings 類別的 AppSettings 方法。ConfigurationSettings 類別是在 System.Configuration 命名空間內。當 AppSettings 方法接收包含索引鍵的字串輸入的參數時,應用程式會擷取與索引鍵相關聯的值。
下列程式碼從關聯的組態檔擷取 Key0 屬性的值。然後程式碼會將此值放在字串變數 sAttr。如果一個機碼不存在此值,Nothing 儲存在 sAttr
sAttr = ConfigurationSettings. AppSettings("Key0")
- 若要顯示在主控台視窗中的應用程式會擷取值,使用 Console.WriteLine:
Console.WriteLine("The value of Key0: " & sAttr)
- 您可以使用 AppSettings 屬性的一個參考來擷取所有索引鍵/值組中 「 <appsettings> 區段。如果您未指定任何參數,當您使用 AppSettings 屬性,應用程式會傳回所有相關聯的索引鍵/值組。 這些配對都儲存在包含應用程式會擷取每個索引鍵的索引鍵/值項目是 NameValueCollection 型別。NameValueCollection 類別是在
Dim sAll As NameValueCollection
sAll = ConfigurationSettings.AppSettings()
System.Collections.Specialized 命名空間。 - NameValueCollectionAllKeys 屬性參考字串陣列,具有應用程式會擷取每個索引鍵的項目。使用 的下一步 建構以逐一查看 AllKeys 陣列來存取應用程式會擷取每個索引鍵。AllKeys 中的每個索引鍵項目是一個字串資料型別。
Dim s As String
For Each s In sAll.AllKeys
- 在 For Each 建構內使用 Console.WriteLine,以顯示索引鍵和其相關聯的值 [主控台] 視窗。目前應用程式處理的關鍵在於"s"。使用這在 sAllNameValueCollection 中以索引來取得其相關聯的值。
比方說如果應用程式處理 Key0 鍵,sAll("Key0") 擷取其相關聯的值。Console.Readline 陳述式會暫停主控台。您可以按 ENTER 鍵來結束應用程式
Console.WriteLine("Key: " & s & " Value: " & sAll(s))
Next
Console.Readline
請確認它可以運作
按下 F5 鍵以執行程式碼。[主控台] 視窗應該會顯示索引鍵/值組,從
<appsettings> 的關聯的組態區段的檔案,如下所示:
The value of Key0: 0
Key: Key0 Value:0
Key: Key1 Value:1
Key: Key2 Value:2
完成程式碼清單
Imports System.Configuration
Imports System.Collections.Specialized
Module Module1
Sub Main()
Dim sAttr As String
sAttr = ConfigurationSettings.AppSettings("Key0")
Console.WriteLine("The value of Key0: " & sAttr)
Dim sAll As NameValueCollection
sAll = ConfigurationSettings.AppSettings()
Dim s As String
For Each s In sAll.AllKeys
Console.WriteLine("Key: " & s & " Value: " & sAll(s))
Next
Console.ReadLine()
End Sub
End Module
完整的設定檔清單 (ConConfig.exe.config)
<configuration>
<appSettings>
<add key="Key0" value="0"/>
<add key="Key1" value="1"/>
<add key="Key2" value="2"/>
</appSettings>
</configuration>
疑難排解
文章編號: 313405 - 上次校閱: 2006年12月6日 - 版次: 5.5
這篇文章中的資訊適用於:
- Microsoft Visual Basic 2005
- Microsoft Visual Basic .NET 2003 Standard Edition
- Microsoft Visual Basic .NET 2002 Standard Edition
| kbmt kbvs2005swept kbvs2005applies kbconfig kbhowtomaster KB313405 KbMtzh |
機器翻譯重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:
313405
(http://support.microsoft.com/kb/313405/en-us/
)
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。