ที่ง่ายที่สุด app.config เป็นไฟล์ XML ที่มีส่วนกำหนดค่าที่กำหนดไว้ล่วงหน้าจำนวนมากและการสนับสนุนสำหรับส่วนกำหนดค่าที่กำหนดเอง "ส่วนการกำหนดค่า" เป็นตัวอย่างของ XML ที่มีสคีมาเพื่อเก็บข้อมูลบางประเภท
การตั้งค่าสามารถกำหนดค่าที่ใช้ในตัวส่วนการกำหนดค่าเช่นหรือconnectionStrings
appSettings
คุณสามารถเพิ่มส่วนกำหนดค่าที่กำหนดเองของคุณเอง; นี่เป็นหัวข้อขั้นสูง แต่มีประสิทธิภาพมากสำหรับการสร้างไฟล์กำหนดค่าที่พิมพ์อย่างรุนแรง
เว็บแอปพลิเคชันมักจะมี web.config ในขณะที่ Windows GUI / แอปพลิเคชันบริการมีไฟล์ app.config
ไฟล์กำหนดค่าระดับแอปพลิเคชันสืบทอดการตั้งค่าจากไฟล์กำหนดค่าส่วนกลางเช่น machine.config
อ่านจาก App.Config
สตริงการเชื่อมต่อมีสคีมาที่กำหนดไว้ล่วงหน้าซึ่งคุณสามารถใช้ได้ โปรดทราบว่าตัวอย่างเล็ก ๆ นี้เป็นไฟล์ app.config (หรือ web.config) ที่ถูกต้อง:
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="MyKey"
connectionString="Data Source=localhost;Initial Catalog=ABC;"
providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
เมื่อคุณกำหนด app.config แล้วคุณสามารถอ่านได้ในรหัสโดยใช้คลาสConfigurationManager อย่าถูกข่มขู่โดยตัวอย่าง MSDN verbose; มันค่อนข้างง่ายจริงๆ
string connectionString = ConfigurationManager.ConnectionStrings["MyKey"].ConnectionString;
กำลังเขียนไปที่ App.Config
การเปลี่ยนไฟล์ * .config บ่อยครั้งไม่ใช่ความคิดที่ดี แต่ดูเหมือนคุณต้องการทำการตั้งค่าแบบครั้งเดียวเท่านั้น
โปรดดู: เปลี่ยนสตริงการเชื่อมต่อ & โหลดแอปอีกครั้งตอนรันไทม์ซึ่งอธิบายวิธีอัปเดตconnectionStrings
ส่วนของไฟล์ * .config ที่รันไทม์
โปรดทราบว่าคุณควรทำการเปลี่ยนแปลงการกำหนดค่าดังกล่าวจากตัวติดตั้งอย่างง่าย
ตำแหน่งของ App.Config ที่รันไทม์
ถาม : สมมติว่าฉันเปลี่ยนบางอย่างด้วยตัวเอง<value>
ใน app.config บันทึกและปิด ตอนนี้เมื่อฉันไปที่โฟลเดอร์ bin และเปิดไฟล์. exe จากที่นี่ทำไมมันไม่แสดงถึงการเปลี่ยนแปลงที่นำไปใช้?
ตอบ : เมื่อคุณรวบรวมแอปพลิเคชัน app.config ของแอพพลิเคชั่นจะถูกคัดลอกไปยังไดเรกทอรี bin 1พร้อมชื่อที่ตรงกับ exe ของคุณ ตัวอย่างเช่นหาก exe ของคุณชื่อ "test.exe" ควรมี "text.exe.config" ในไดเรกทอรี bin ของคุณ คุณสามารถเปลี่ยนการกำหนดค่าโดยไม่ต้องคอมไพล์ใหม่ แต่คุณจะต้องแก้ไขไฟล์กำหนดค่าที่สร้างขึ้นในเวลารวบรวมไม่ใช่แอพเดิม
1: โปรดทราบว่าไฟล์ web.config จะไม่ถูกย้าย แต่จะอยู่ในตำแหน่งเดียวกันในเวลาคอมไพล์และการปรับใช้ หนึ่งข้อยกเว้นนี้คือเมื่อ web.config จะเปลี่ยน
.NET Core
ตัวเลือกการกำหนดค่าใหม่ถูกนำมาใช้กับ. NET Core วิธีการทำงานของไฟล์ * .config นั้นไม่มีการเปลี่ยนแปลง แต่นักพัฒนามีอิสระที่จะเลือกกระบวนทัศน์การกำหนดค่าใหม่ที่ยืดหยุ่นกว่าได้