ไฟล์ App.Config ในแอปพลิเคชันคอนโซล C #


92


ฉันมีแอปพลิเคชันคอนโซลที่ฉันต้องการเขียนชื่อไฟล์

Process.Start("blah.bat");

ปกติผมจะมีสิ่งที่ต้องการในโปรแกรม windows โดยการเขียนชื่อของไฟล์'blah.bat'ที่จะตั้งค่าไฟล์ในคุณสมบัติ
อย่างไรก็ตามที่นี่ฉันไม่พบไฟล์การตั้งค่าใด ๆและฉันได้เพิ่มapp.configเพื่อจุดประสงค์เดียวกัน

ผมไม่แน่ใจว่าสิ่งที่จะเขียนนี่ในapp.configที่จะนำไปสู่การฉันเพื่อให้บรรลุสิ่งที่คล้ายกันเช่นเดียวกับในแบบฟอร์ม Windows

ตัวอย่างเช่น: ในรูปแบบ windows Process.Start(Properties.Settings.Default.BatchFile);
ที่BatchFileเป็นสตริงในแฟ้มการตั้งค่าในคุณสมบัติของ

คำตอบ:


215

คุณสามารถเพิ่มการอ้างอิงSystem.Configurationในโครงการของคุณจากนั้น:

using System.Configuration;

แล้ว

string sValue = ConfigurationManager.AppSettings["BatchFile"];

ด้วยapp.configไฟล์เช่นนี้:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <appSettings>
       <add key="BatchFile" value="blah.bat" />
   </appSettings>
</configuration>

11
ConfigurationSettings.AppSettings["blah.bat"]พร้อมใช้งาน แต่ให้คำเตือนว่าสิ่งนี้ล้าสมัย เมื่อฉันพยายามใช้ConfigurationManagerตามด้านบนฉันได้รับข้อผิดพลาดว่า ConfigurationManager ไม่มีอยู่ในบริบทปัจจุบัน : - /
user1240679

69
ตรวจสอบให้แน่ใจว่าคุณได้เพิ่มการอ้างอิงไปยัง System.Configuration - usingdurective จะใช้งานได้ก็ต่อเมื่อคุณมีการอ้างอิงไปยังแอสเซมบลีที่คุณพยายามใช้
xxbbcc

1
ความคิดเห็นที่ล่าช้า แต่สำหรับฉันความผิดพลาดของฉันคือฉันลืมปลอกด้านบน 'S' จาก appSettings

ฉันจะรับ int หรือ bool ได้อย่างไรเช่นไม่ใช่สตริง
Zapnologica

1
@Zapnologica ทุกอย่างเป็นสตริงเท่าที่AppSettingsพิจารณา หากคุณมีสตริงการตั้งค่าที่มีตัวเลขคุณจะต้องแยกวิเคราะห์โดยการโทรint.TryParse()หรืออื่น ๆ เช่นเดียวกันกับค่าอื่น ๆ ที่คุณต้องการใช้กับสิ่งอื่นที่ไม่ใช่สตริง
xxbbcc

21

สำหรับ. NET Core ให้เพิ่ม System.Configuration.ConfigurationManager จาก NuGet manager
และอ่านappSettingจากApp.config

<appSettings>
  <add key="appSetting1" value="1000" />
</appSettings>

เพิ่ม System.Configuration.ConfigurationManager จาก NuGet Manager

ป้อนคำอธิบายภาพที่นี่

ConfigurationManager.AppSettings.Get("appSetting1")

2

ใช้สิ่งนี้

System.Configuration.ConfigurationSettings.AppSettings.Get("Keyname")

คุณสามารถบันทึกการกำหนดค่าของคุณใน appsettion และสำหรับ Fetch the value use ตัวอย่าง
user5705992

1
ให้การสนับสนุนรันไทม์เวอร์ชัน 1.x นี้เป็นล้าสมัยในขณะนี้ กรุณาใช้System.Configuration.ConfigurationManager.AppSettings
wp78de

1
จำเป็นต้องใช้ชุดประกอบ System.Configuration ในการอ้างอิง
Muflix
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.