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

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

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

สรุป

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

ความต้องการ

รายการต่อไปนี้แสดงฮาร์ดแวร์แนะนำ ซอฟต์แวร์ โครงสร้างพื้นฐานของเครือข่าย และ service pack ที่คุณต้องการ:
  • Microsoft Windows 2000, Windows XP, Windows Server 2003, Windows Vista หรือ Windows Server 2008
  • Microsoft ที่ Visual C#
บทความนี้อนุมานว่า คุณจะคุ้นเคยกับข้อความต่อไปนี้ หัวข้อ:
  • Extensible Markup Language (XML)
  • แฟ้มการตั้งค่าคอนฟิกของ.NET

สร้างโปรแกรมประยุกต์คอนโซลที่อ่านว่า เนื้อหาของแฟ้มการตั้งค่าคอนฟิก

คุณสามารถจัดเก็บใบสมัครในการกำหนดค่าการตั้งค่าแฟ้มที่ เชื่อมโยงกับแอพลิเคชันอยู่ บันทึกแฟ้มการตั้งค่าคอนฟิกเป็น XML รูปแบบ

System.Configurationและ System.Collections.Specialized namespaces ใน Microsoft .NET Framework รวมจำเป็น คลาสที่ค้นคืนข้อมูลจากแฟ้มการกำหนดค่าโปรแกรมประยุกต์.NET ระหว่างเวลาทำงาน

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

    หมายเหตุ ใน Visual Studio .NET 2003 คลิก Visual C# โครงการ ภายใต้ชนิดโครงการแล้ว คลิก คอนโซล แอพลิเคชัน ภายใต้ แม่แบบ. ชื่อโครงการConConfig. โดยค่าเริ่มต้น Visual C# สร้างคลาส ที่ชื่อ Class1
  4. ตรวจสอบให้แน่ใจว่า หน้าต่าง Explorer โซลูชันนั้นปรากฏ If ไม่สามารถมองเห็นได้ กด CTRL + ALT + L ที่แป้นพิมพ์พร้อมกัน
  5. ในโซลูชัน Explorer ให้คลิกขวาชื่อโครงการ คลิก เพิ่มแล้ว คลิก สินค้าใหม่.
  6. ในการ เพิ่มสินค้าใหม่ รายการ คลิกเพื่อเลือกแฟ้ม XML.
  7. ในการ ชื่อ กล่องข้อความ ชนิดApp.configแล้ว คลิกเพิ่ม.

    หมายเหตุ ใน Visual Studio .NET 2003 คลิก เปิด.
  8. คุณสามารถใช้แฟ้มการตั้งค่าคอนฟิกแอพลิเคชันที่จะรวบรวม ตั้งค่าโปรแกรมประยุกต์ที่กำหนดเองที่คุณบันทึกในรูปแบบของคีย์และค่า คุณสามารถรวม<add></add>องค์ประกอบในการ<appSettings></appSettings>ส่วนของแฟ้มการตั้งค่าคอนฟิกที่เกี่ยวข้องได้ แต่ละคู่คีย์/ค่า มีส่วนขยายหนึ่ง<add></add>องค์ประกอบ การ<add></add>องค์ประกอบที่มีรูปแบบต่อไปนี้:
    <add key="Key0" value="0" />
    เพิ่มการ<appSettings></appSettings>ส่วนด้วย<add></add>องค์ประกอบไปยังแฟ้มการตั้งค่าคอนฟิกระหว่าง<configuration></configuration> และ แท็ก

    ตัวอย่างเช่น การ แฟ้มการตั้งค่าคอนฟิกการดังต่อไปนี้ประกอบด้วยการ<appSettings></appSettings>ส่วนที่ระบุ 3/ค่า คีย์คู่:
    <?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. ในโซลูชัน Explorer คลิกสองครั้งProgram.cs เมื่อต้องแสดงหน้าต่างโค้ด เพิ่มต่อไปนี้ คำสั่งโมดูลรหัสของคุณ

    หมายเหตุ คำสั่งเหล่านี้ต้องปรากฏอยู่ก่อนคำสั่งอื่น ๆ ในการ แฟ้ม
    using System.Configuration;
    using System.Collections.Specialized;
  10. เพิ่มการอ้างอิงถึง System.Configuration.dll ในการดำเนินการดังกล่าว ให้ทำตามขั้นตอนต่อไปนี้
    1. ในการ โครงการ เมนู คลิก เพิ่มการอ้างอิง.
    2. ในการ เพิ่มการอ้างอิง กล่องโต้ตอบ กล่อง คลิก .NET แท็บ
    3. ค้นหา และเลือกชื่อของใช้ System.Configuration คอมโพเนนต์
    4. คลิก ตกลง.
  11. เมื่อต้องเก็บค่าจากคีย์แฟ้มการตั้งค่าคอนฟิกในนั้น<appSettings></appSettings> ส่วนของแฟ้มการตั้งค่าคอนฟิก ประกาศ ตัวแปรสายอักขระที่อยู่ในหลักส่วนดังต่อไปนี้:
     string  sAttr ;
  12. เมื่อต้องการเรียกคืนค่าคีย์ที่ระบุจาก<appSettings></appSettings>ส่วนของแฟ้มการตั้งค่าคอนฟิก ให้ใช้วิธีรับของAppSettingsคุณสมบัติของคลาConfigurationManager คลาConfigurationManagerในSystem.Configuration namespace อยู่ เมื่อวิธีการ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> ส่วน เมื่อคุณใช้คุณสมบัติAppSettingsแอพลิเคชันส่งกลับค่าคู่คีย์/ค่าที่เกี่ยวข้องทั้งหมด คู่เหล่านี้ถูกเก็บไว้ในชนิดNameValueCollectionNameValueCollectionประกอบด้วยค่าและคีย์รายการสำหรับแต่ละคีย์ที่แอพลิเคชัน ดึงข้อมูล คลาNameValueCollectionในSystem.Collections.Specialized namespace อยู่
    NameValueCollection sAll ;
    sAll = ConfigurationManager.AppSettings;
  15. คุณสมบัติAllKeysของNameValueCollectionที่อ้างอิงถึงอาร์เรย์เป็นสายอักขระที่มีรายการสำหรับแต่ละคีย์ที่จะ แอพลิเคชันดึงข้อมูล ใช้ก่อสร้างที่foreachเพื่อทำซ้ำในการผ่านอาร์เรย์AllKeysในการเข้าถึงแต่ละคีย์ที่ดึงข้อมูลของแอพลิเคชัน แต่ละคีย์ รายการในAllKeysเป็นชนิดข้อมูลสายอักขระ

    ภายในการก่อสร้างที่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 ถ้าคุณกำลังใช้ 1.0 Framework .NET หรือ.NET Framework 1.1 เปลี่ยนอินสแตนซ์ทั้งหมดของคลาConfigurationManagerเป็นConfigurationSettings

แฟ้มการตั้งค่าคอนฟิกที่รายการ (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>

ตรวจสอบว่า โปรแกรมทำ

กด F5 เพื่อเรียกใช้รหัสนี้ หน้าต่างคอนโซลควรแสดงผล คู่จากคีย์และค่า <appSettings></appSettings> ส่วนของแฟ้มการกำหนดค่าที่เกี่ยวข้องดังกล่าว:
The value of Key0: 0
Key: Key0 Value:0
Key: Key1 Value:1
Key: Key2 Value:2
		

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

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

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

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

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

คุณสมบัติ

หมายเลขบทความ (Article ID): 815786 - รีวิวครั้งสุดท้าย: 5 พฤศจิกายน 2555 - Revision: 6.0
ใช้กับ
  • Microsoft Visual C# 2008 Express Edition
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Keywords: 
kbsweptvs2008 kbcollections kbcollectionclass kbconfig kbnamespace kbhowtomaster kbprogramming kbmt KB815786 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:815786

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

 

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