Làm cách nào để thêm và đọc giá trị từ tệp web.config ?
Làm cách nào để thêm và đọc giá trị từ tệp web.config ?
Câu trả lời:
Tôi khuyên bạn không nên sửa đổi web.config từ của bạn, bởi vì mỗi khi thay đổi, nó sẽ khởi động lại ứng dụng của bạn.
Tuy nhiên, bạn có thể đọc web.config bằng cách sử dụng System.Configuration.ConfigurationManager.AppSettings
Cho web.config sau:
<appSettings>
<add key="ClientId" value="127605460617602"/>
<add key="RedirectUrl" value="http://localhost:49548/Redirect.aspx"/>
</appSettings>
Ví dụ sử dụng:
using System.Configuration;
string clientId = ConfigurationManager.AppSettings["ClientId"];
string redirectUrl = ConfigurationManager.AppSettings["RedirectUrl"];
ToString
một cách rõ ràng, như indexers trên AppSettings
giá trị trả về kiểu string
bản thân
Nếu bạn muốn những điều cơ bản, bạn có thể truy cập các phím thông qua:
string myKey = System.Configuration.ConfigurationManager.AppSettings["myKey"].ToString();
string imageFolder = System.Configuration.ConfigurationManager.AppSettings["imageFolder"].ToString();
Để truy cập các khóa cấu hình web của tôi, tôi luôn tạo một lớp tĩnh trong ứng dụng của mình. Nó có nghĩa là tôi có thể truy cập chúng bất cứ nơi nào tôi yêu cầu và tôi không sử dụng các chuỗi trên ứng dụng của mình (nếu nó thay đổi trong cấu hình web, tôi sẽ phải thực hiện tất cả các lần thay đổi chúng). Đây là một mẫu:
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; }
}
}
Ryan Farley có một bài đăng tuyệt vời về điều này trên blog của anh ấy, bao gồm tất cả các lý do tại sao không ghi lại vào tệp web.config: Viết vào tệp cấu hình ứng dụng .NET của bạn
Tôi là lớp siteConfiguration để gọi tất cả appSetting của tôi như thế này. Tôi chia sẻ nó nếu nó sẽ giúp đỡ bất cứ ai.
thêm mã sau tại "web.config"
<configuration>
<configSections>
<!-- some stuff omitted here -->
</configSections>
<appSettings>
<add key="appKeyString" value="abc" />
<add key="appKeyInt" value="123" />
</appSettings>
</configuration>
Bây giờ bạn có thể xác định một lớp để nhận tất cả giá trị appSetting của mình. như thế này
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;
}
}
}
}
Bây giờ, hãy thêm tham chiếu của lớp trước đó và để truy cập một lệnh gọi khóa như dưới đây
string appKeyStringVal= SiteConfigurationReader.appKeyString;
int appKeyIntVal= SiteConfigurationReader.appKeyInt;
int appKeyStringByPassingKey = SiteConfigurationReader.GetAppSettingsInteger("appKeyInt");