วิธีการจัดเก็บ และดึงข้อมูลที่กำหนดเองจากแฟ้มการกำหนดค่าของแอพลิเคชัน โดยใช้ Visual Basic .NET หรือ Visual Basic 2005

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 313405 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
สำหรับรุ่น Microsoft Microsoft Visual c# .NET ของบทความนี้ ดู815786.
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความนี้อธิบายวิธีการเก็บข้อมูลที่กำหนดเองในแฟ้มการตั้งค่าคอนฟิก (.config) ที่คุณสามารถดึงข้อมูลในภายหลังในระหว่างเวลารันของโปรแกรมประยุกต์ที่เกี่ยวข้อง ซึ่งจะเป็นประโยชน์เมื่อคุณต้องการกำหนดข้อมูลที่เกี่ยวข้องกับโปรแกรมประยุกต์


ความต้องการ

รายการต่อไปนี้แสดงฮาร์ดแวร์ที่แนะนำ ซอฟต์แวร์ โครงสร้างพื้นฐานของเครือข่าย และ service pack ที่คุณต้องการ:
  • Microsoft Windows 2000, Microsoft Windows XP หรือ Microsoft Windows Server 2003
  • Microsoft Visual Studio .NET (2002) หรือ Microsoft Visual Studio .NET (2003) หรือ Microsoft Visual Studio 2005
บทความนี้อนุมานว่า คุณไม่คุ้นเคยกับหัวข้อต่อไปนี้:
  • ภาษามาร์กอัป extensible (XML)
  • แฟ้มการกำหนดค่าของ.NET

สร้างแอพลิเคชันคอนโซลที่อ่านว่า เนื้อหาของแฟ้มการตั้งค่าคอนฟิก

คุณสามารถเก็บการตั้งค่าโปรแกรมประยุกต์ภายในแฟ้มการกำหนดค่าที่เกี่ยวข้องกับแอพลิเคชัน มีบันทึกแฟ้มการตั้งค่าคอนฟิกใน XML รูปแบบ กระบวนการSystem.ConfigurationและSystem.Collections.Specializednamespaces ใน Framework Microsoft .NET รวมคลาสที่จำเป็นในการดึงข้อมูลจากแฟ้มการกำหนดค่าโปรแกรมประยุกต์.NET ระหว่างเวลาที่ใช้

เมื่อต้องการสร้างโปรแกรมประยุกต์คอนโซลที่อ่านว่า เนื้อหาของแฟ้มการกำหนดค่าที่เกี่ยวข้องในระหว่างรันไทม์ ดำเนินการดังต่อไปนี้:
  1. เริ่ม Visual Studio .NET หรือ Visual Studio 2005
  2. สร้างโครงการการแอพลิเคชันคอนโซลใหม่ที่ชื่อ ConConfig ใน Visual Basic .NET หรือ Visual Basic 2005 visual Basic .NET หรือ Visual Basic 2005 สร้างโมดูลชื่อ Module1 โดยค่าเริ่มต้น
  3. คลิกขวา ConConfigProjectโฟลเดอร์ ชี้ไปที่addแล้ว คลิกเพิ่มรายการใหม่.

    หมายเหตุ:ใน Visual Studio 2005 คลิกขวา ConConfigProjectโฟลเดอร์ ชี้ไปที่addแล้ว คลิกสินค้าใหม่.
  4. ในการเพิ่มรายการใหม่กล่องโต้ตอบ เลือกนั้นแอพลิเคชันแฟ้มการกำหนดค่าต้นแบบ คลิกOPENแล้ว เพิ่มแฟ้ม App.config กับโครงการ

    หมายเหตุ:Visual Studio .NET หรือ Visual Studio 2005 IDE คัดลอก App.Config ไปยังโฟลเดอร์ที่แฟ้มที่ปฏิบัติการได้ถูกคอมไพล์ และเปลี่ยนชื่อใน<applicationname></applicationname>.<application type=""></application>.configรูปแบบ:
  5. คุณสามารถใช้แฟ้มการกำหนดค่าโปรแกรมประยุกต์มีการรวบรวมการตั้งค่าโปรแกรมประยุกต์ที่กำหนดเองที่คุณบันทึกในรูปแบบคีย์/ค่า คุณสามารถรวม<add></add>องค์ประกอบในการ<appsettings></appsettings>ส่วนของแฟ้มการกำหนดค่าที่เกี่ยวข้อง มีคู่คีย์/ค่าแต่ละหนึ่ง<add></add>องค์ประกอบ มี<add></add>องค์ประกอบที่มีรูปแบบต่อไปนี้:
    <add key="theKey" value="theValue" />
    						
    เพิ่มการ<appsettings></appsettings>ส่วนด้วย<add></add>องค์ประกอบในไฟล์การตั้งค่าคอนฟิกระหว่างแท็ก <configuration>และ</configuration> ตัวอย่างเช่น แฟ้มการกำหนดค่าต่อไปนี้รวมถึงการ<appsettings></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>
    					
  6. ในโซลูชัน Explorer คลิกสองครั้งModule1.vbเมื่อต้องการแสดงหน้าต่างรหัส Module1 เพิ่มคำสั่งต่อไปนี้ในโมดูรหัสของคุณ:

    หมายเหตุ:คำสั่งเหล่านี้ต้องปรากฏก่อนคำสั่งอื่น ๆ ในแฟ้ม
    Imports System.Configuration
    Imports System.Collections.Specialized
    					
  7. ในการหลักการย่อยขั้นตอน มิติสายอักขระตัวแปรเพื่อเก็บค่าจากคีย์แฟ้มการกำหนดค่าในการ<appsettings></appsettings>ส่วนของแฟ้มการกำหนดค่า:
    Dim sAttr As String
    					
  8. เมื่อต้องการเรียกคืนค่าคีย์ที่ระบุจากนั้น<appsettings></appsettings>ส่วนของแฟ้มการกำหนดค่า การใช้การAppSettingsวิธีการนี้ConfigurationSettingsคลาสที่ กระบวนการConfigurationSettingsคลาอยู่ในนั้นSystem.Configurationnamespace เมื่อการAppSettingsวิธีรับพารามิเตอร์สำหรับการป้อนค่าสายอักขระที่ประกอบด้วยคีย์ มูลค่าที่เกี่ยวข้องกับคีย์การดึงข้อมูลโปรแกรมประยุกต์

    ค่าสำหรับการดึงข้อมูลรหัสต่อไปนี้Key0แอตทริบิวต์จากแฟ้มการกำหนดค่าที่เกี่ยวข้อง รหัสทำค่านี้ในตัวแปรสตริงที่ แล้วsAttr. ถ้าไม่มีคีย์สำหรับค่านี้ไม่มีสิ่งใดเก็บไว้ในsAttr.
    sAttr = ConfigurationSettings. AppSettings("Key0")
    					
  9. เมื่อต้องการแสดงค่าที่แอพลิเคชันดึงข้อมูลในหน้าต่างคอนโซล ใช้Console.WriteLine:
    Console.WriteLine("The value of Key0: " & sAttr)
    					
  10. คุณสามารถใช้การอ้างอิงหนึ่งไปยังAppSettingsคุณสมบัติการดึงข้อมูลทั้งหมดของคู่คีย์/ค่าในการ<appsettings></appsettings>ส่วน ถ้าคุณไม่ได้ระบุพารามิเตอร์ใด ๆ เมื่อคุณใช้การAppSettingsคุณสมบัติ แอพลิเคชันกลับคู่คีย์/ค่าที่เกี่ยวข้องทั้งหมด คู่เหล่านี้จะถูกเก็บไว้ในตัวNameValueCollectionพิมพ์ ซึ่งประกอบด้วยรายการของคีย์/ค่าสำหรับแต่ละคีย์แอพลิเคชันดึงข้อมูล กระบวนการNameValueCollectionคลาอยู่ในนั้นSystem.Collections.Specializednamespace
    Dim sAll As NameValueCollection
    sAll = ConfigurationSettings.AppSettings()
    					
  11. กระบวนการAllKeysคุณสมบัติของNameValueCollectionการอ้างอิงอาร์เรย์ของสายอักขระที่มีรายการสำหรับแต่ละคีย์ที่ดึงข้อมูลโปรแกรมประยุกต์ ใช้แบบสำหรับถัดไปการดำเนินการกับ iterate ผ่านทางการAllKeysอาร์เรย์ในการเข้าถึงแต่ละคีย์ที่ดึงข้อมูลโปรแกรมประยุกต์ รายการแต่ละคีย์ในAllKeysมีชนิดข้อมูลของสายอักขระ
    Dim s As String
    For Each s In sAll.AllKeys
    					
  12. ภายในนั้นสำหรับแต่ละก่อสร้าง การใช้Console.WriteLineเมื่อต้องการแสดงคีย์และค่าเกี่ยวข้องในคอนโซลการหน้าต่าง คีย์ปัจจุบันที่ประมวลผลแอพลิเคชันที่อยู่ใน "% s" ใช้ข้อมูลนี้เป็นดัชนีในนั้นsAllNameValueCollectionเมื่อต้องการดูมูลค่าที่เกี่ยวข้อง

    ตัวอย่าง ถ้าการประมวลผลแอพลิเคชันนั้นKey0คีย์ sAll("Key0") ดึงมูลค่าที่เกี่ยวข้อง กระบวนการConsole.Readlineใบแจ้งยอดจากคอนโซลที่หยุดชั่วคราว คุณสามารถกด ENTER เพื่อสิ้นสุดการแอพลิเคชัน
        Console.WriteLine("Key: " & s & " Value: " & sAll(s))
    Next
    Console.Readline
    					

ตรวจสอบทำว่า งาน

กดแป้น F5 เพื่อเรียกใช้รหัส หน้าต่างคอนโซลควรแสดงคู่คีย์/ค่าจากนั้น<appsettings></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>
				

การแก้ไขปัญหา

  • แฟ้มการกำหนดค่าถูกบันทึกในรูปแบบ XML ตรวจสอบให้แน่ใจว่า คุณได้ปฏิบัติตามกฎไวยากรณ์ XML ทั้งหมด โปรดจำไว้ว่า XML สำคัญ case ถ้า XML ได้ไม่ดีต้อง หรือ ถ้าองค์ประกอบสะกดผิด คุณได้รับข้อความแสดงข้อยกเว้นของ System.Configuration.Configuration

    ตัวอย่าง ถ้าคุณเพิ่มแอตทริบิวต์ที่สำคัญของการ<add></add>องค์ประกอบที่ มีเป็นตัวพิมพ์ใหญ่ "K" แทน "k ตัวพิมพ์เล็กของ หรือถ้าการ<appsettings></appsettings>ส่วนที่ปรากฏขึ้น<appsettings></appsettings>(โดยเป็นตัวพิมพ์ใหญ่ "A" แทนที่จะเป็นตัวพิมพ์เล็กของ "a"), คุณได้รับข้อความแสดงข้อผิดพลาด
  • แฟ้มการกำหนดค่าต้องถูกรวมไว้ในโครงการ
  • คุณต้องใช้ไวยากรณ์ต่อไปนี้สำหรับชื่อแฟ้มการกำหนดค่าเมื่อมีสร้างแฟ้มภายนอกของสภาพแวดล้อมของ Visual Studio และต้องการอยู่ในโฟลเดอร์เดียวกันเป็นของโปรแกรมประยุกต์ที่เกี่ยวข้อง:
    applicationname.ApplicationType.config
    โดย:applicationnameคือชื่อของแอพลิเคชันApplicationTypeชนิดของแอพลิเคชัน (ตัวอย่างเช่น exe) คือ และ.config ส่วนต่อท้ายที่จำเป็นต้อง

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติม โปรดไปที่เว็บไซต์ต่อไปนี้ของ MSDN:
คุณสมบัติ ConfigurationSettings.AppSettings
.aspx http://msdn2.microsoft.com/en-us/library/system.configuration.configurationsettings.appsettings (vs.71)
System.Configuration Namespace
.aspx http://msdn2.microsoft.com/en-us/library/system.configuration (vs.71)

คุณสมบัติ

หมายเลขบทความ (Article ID): 313405 - รีวิวครั้งสุดท้าย: 19 ตุลาคม 2553 - Revision: 2.0
ใช้กับ
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Keywords: 
kbvs2005swept kbvs2005applies kbconfig kbhowtomaster kbmt KB313405 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:313405

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com