ฉันจะเพิ่มและอ่านค่าจากไฟล์web.config ได้อย่างไร
ฉันจะเพิ่มและอ่านค่าจากไฟล์web.config ได้อย่างไร
คำตอบ:
ฉันขอแนะนำให้คุณอย่าแก้ไข web.config จากของคุณเพราะทุกครั้งเมื่อมีการเปลี่ยนแปลงแอปพลิเคชันของคุณจะรีสตาร์ท
อย่างไรก็ตามคุณสามารถอ่าน web.config โดยใช้ไฟล์ System.Configuration.ConfigurationManager.AppSettings
รับ web.config ต่อไปนี้:
<appSettings>
<add key="ClientId" value="127605460617602"/>
<add key="RedirectUrl" value="http://localhost:49548/Redirect.aspx"/>
</appSettings>
ตัวอย่างการใช้งาน:
using System.Configuration;
string clientId = ConfigurationManager.AppSettings["ClientId"];
string redirectUrl = ConfigurationManager.AppSettings["RedirectUrl"];
ToString
อย่างชัดเจนในฐานะผู้จัดทำดัชนีเกี่ยวกับAppSettings
มูลค่าการส่งคืนของประเภทstring
ตัวเอง
หากคุณต้องการข้อมูลพื้นฐานคุณสามารถเข้าถึงคีย์ผ่าน:
string myKey = System.Configuration.ConfigurationManager.AppSettings["myKey"].ToString();
string imageFolder = System.Configuration.ConfigurationManager.AppSettings["imageFolder"].ToString();
ในการเข้าถึงคีย์การกำหนดค่าเว็บของฉันฉันจะสร้างคลาสแบบคงที่ในแอปพลิเคชันของฉันเสมอ หมายความว่าฉันสามารถเข้าถึงได้ทุกที่ที่ฉันต้องการและฉันไม่ได้ใช้สตริงทั่วแอปพลิเคชันของฉัน (หากมีการเปลี่ยนแปลงในการกำหนดค่าเว็บฉันจะต้องดำเนินการตามเหตุการณ์ทั้งหมดที่เปลี่ยนแปลง) นี่คือตัวอย่าง:
using System.Configuration;
public static class AppSettingsGet
{
public static string myKey
{
get { return ConfigurationManager.AppSettings["myKey"].ToString(); }
}
public static string imageFolder
{
get { return ConfigurationManager.AppSettings["imageFolder"].ToString(); }
}
// I also get my connection string from here
public static string ConnectionString
{
get { return ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; }
}
}
สมมติว่ามีคีย์อยู่ภายใน<appSettings>
โหนด:
ConfigurationSettings.AppSettings["theKey"];
สำหรับ "การเขียน" - เพียงแค่อย่า
web.config ไม่ได้ออกแบบมาสำหรับสิ่งนั้นหากคุณกำลังจะเปลี่ยนค่าอยู่ตลอดเวลาให้ใส่ไว้ในคลาสผู้ช่วยแบบคงที่
Ryan Farley มีโพสต์ดีๆเกี่ยวกับเรื่องนี้ในบล็อกของเขารวมถึงเหตุผลทั้งหมดที่ไม่ต้องเขียนกลับไปที่ไฟล์ web.config: การเขียนลงในไฟล์ Config ของแอปพลิเคชัน. NET ของคุณ
ฉันเป็นคลาส siteConfiguration สำหรับการเรียก appSetting ทั้งหมดของฉันด้วยวิธีนี้ ฉันแบ่งปันถ้ามันจะช่วยใคร
เพิ่มรหัสต่อไปนี้ที่ "web.config"
<configuration>
<configSections>
<!-- some stuff omitted here -->
</configSections>
<appSettings>
<add key="appKeyString" value="abc" />
<add key="appKeyInt" value="123" />
</appSettings>
</configuration>
ตอนนี้คุณสามารถกำหนดคลาสเพื่อรับค่า appSetting ทั้งหมดของคุณ แบบนี้
using System;
using System.Configuration;
namespace Configuration
{
public static class SiteConfigurationReader
{
public static String appKeyString //for string type value
{
get
{
return ConfigurationManager.AppSettings.Get("appKeyString");
}
}
public static Int32 appKeyInt //to get integer value
{
get
{
return ConfigurationManager.AppSettings.Get("appKeyInt").ToInteger(true);
}
}
// you can also get the app setting by passing the key
public static Int32 GetAppSettingsInteger(string keyName)
{
try
{
return Convert.ToInt32(ConfigurationManager.AppSettings.Get(keyName));
}
catch
{
return 0;
}
}
}
}
ตอนนี้เพิ่มการอ้างอิงของคลาสก่อนหน้าและเพื่อเข้าถึงการโทรที่สำคัญเช่นร้อง
string appKeyStringVal= SiteConfigurationReader.appKeyString;
int appKeyIntVal= SiteConfigurationReader.appKeyInt;
int appKeyStringByPassingKey = SiteConfigurationReader.GetAppSettingsInteger("appKeyInt");