ฉันรู้ว่าฉันสามารถเปิดไฟล์กำหนดค่าที่เกี่ยวข้องกับแอสเซมบลีด้วยConfigurationManager.OpenExe(exePath)
วิธีการแบบคงที่แต่ฉันแค่ต้องการเปิด config ที่ไม่เกี่ยวข้องกับแอสเซมบลี เพียงแค่ไฟล์กำหนดค่า. NET มาตรฐาน
ฉันรู้ว่าฉันสามารถเปิดไฟล์กำหนดค่าที่เกี่ยวข้องกับแอสเซมบลีด้วยConfigurationManager.OpenExe(exePath)
วิธีการแบบคงที่แต่ฉันแค่ต้องการเปิด config ที่ไม่เกี่ยวข้องกับแอสเซมบลี เพียงแค่ไฟล์กำหนดค่า. NET มาตรฐาน
คำตอบ:
บทความที่ Ricky โพสต์นั้นดีมาก แต่น่าเสียดายที่พวกเขาไม่ตอบคำถามของคุณ
ในการแก้ปัญหาของคุณคุณควรลองใช้โค้ดนี้:
ExeConfigurationFileMap configMap = new ExeConfigurationFileMap();
configMap.ExeConfigFilename = @"d:\test\justAConfigFile.config.whateverYouLikeExtension";
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
หากต้องการเข้าถึงค่าภายในการกำหนดค่าคุณสามารถใช้ตัวดำเนินการดัชนี:
config.AppSettings.Settings["test"].Value;
ConfigurationManager.ConnectionStrings
คุณไม่จำเป็นต้องเข้าถึง แต่คุณต้องอ่านค่าจากconfig
วัตถุที่ส่งคืนจากคำสั่งสุดท้ายข้างต้น
ไฟล์กำหนดค่าเป็นเพียงไฟล์ XML คุณสามารถเปิดได้โดย:
private static XmlDocument loadConfigDocument()
{
XmlDocument doc = null;
try
{
doc = new XmlDocument();
doc.Load(getConfigFilePath());
return doc;
}
catch (System.IO.FileNotFoundException e)
{
throw new Exception("No configuration file found.", e);
}
catch (Exception ex)
{
return null;
}
}
และดึงค่าในภายหลังโดย:
// retrieve appSettings node
XmlNode node = doc.SelectSingleNode("//appSettings");
throw new Exception("No configuration file found.", e);
รหัสเข้าไม่ถึงตรวจพบหลังจากที่
whateverYouLikeExtension
หมายความว่าต้องมีอะไรตามมาconfig.
ใช่ไหม