簡單寫了一個類,主要用來操作web.config中幾個常用節的值
包括appsetting,ConnectionStrings,customErrors以及設定Mode和跳轉網址
#region webconfig 檔案
public class WebConfig
{
/// <summary>
/// 操作 AppSetting 節
/// </summary>
public class AppSetting
{
/// <summary>
/// 得到 appsetting 節的值 傳回null出錯
/// <para>如 add key="a" value="b"/</para>
/// <para>如 Get("a") 得到的值為 b </para>
/// <para>傳回null出錯</para>
/// </summary>
/// <param name="nodename">節名稱</param>
/// <returns>節值,傳回null出錯</returns>
public string Get(string nodename)
{
try
{
System.Configuration.AppSettingsReader appReader = new System.Configuration.AppSettingsReader();
if (ConfigurationManager.AppSettings[nodename] != null)
{
string str = Convert.ToString(appReader.GetValue(nodename, typeof(string))).Trim();
return str;
}
else
{
return null;
}
}
catch (Exception ErrMsg)
{
return null;
}
}
/// <summary>
/// 設定 appsettiong 節的值,成功傳回OK,否則傳回錯誤資訊
/// </summary>
/// <param name="key">節名稱</param>
/// <param name="value">新值</param>
public string Set(string key, string value)
{
try
{
Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
AppSettingsSection appSection = (AppSettingsSection)config.GetSection("appSettings");
appSection.Settings[key].Value = value;
config.Save();
return "OK";
}
catch (Exception ErrMsg)
{
return ErrMsg.ToString();
}
}
}
/// <summary>
/// 操作 ConnectionStrings 節
/// </summary>
public class ConnectionStrings
{
/// <summary>
/// 得到 ConnectionStrings 節的值 傳回null出錯
/// <para>如 add name="Dbtype" connectionString="0" </para>
/// <para>如 Get("Dbtype") 得到的值為 0 </para>
/// <para>傳回null出錯</para>
/// </summary>
/// <param name="nodename">節名稱</param>
/// <returns>節值,傳回null出錯</returns>
public string Get(string thename)
{
try
{
return System.Configuration.ConfigurationManager.ConnectionStrings[thename].ConnectionString;
}
catch (Exception ErrMsg)
{
return null;
}
}
}
/// <summary>
/// 操作 customErrors節
/// <para>此節配置在 customerErrors -> configuration-> system.web 下</para>
/// <para>如 customErrors defaultRedirect="defaultError.htm" mode="RemoteOnly"</para>
/// <para></para>
/// </summary>
public class CustomError
{
/// <summary>
/// 得到 customErrors 的 Mode 值
/// </summary>
/// <returns></returns>
public string Get_Mode()
{
try
{
Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
CustomErrorsSection customErrors = (CustomErrorsSection)config.GetSection("system.web/customErrors");
int mode = 1;
switch (customErrors.Mode)
{
case CustomErrorsMode.On:
mode = 0;
break;
case CustomErrorsMode.Off:
mode = 1;
break;
case CustomErrorsMode.RemoteOnly:
mode = 2;
break;
default: break;
}
return mode.ToString();
}
catch (Exception ErrMsg)
{
return ErrMsg.ToString();
}
}
/// <summary>
/// 設定 Mode 和 跳轉網址
/// <para>Mode 0: 啟用自定義錯誤。如果未指定 redirecturl,使用者将看到一般性錯誤</para>
/// </summary>
/// <param name="thenum">Mode值 0:啟用,1:禁用,2:調試時顯示錯誤</param>
/// <param name="redirecturl">出錯跳轉位址,""時顯示一般錯誤</param>
public string Set(int thenum, string redirecturl)
{
try
{
Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
CustomErrorsSection customErrors = (CustomErrorsSection)config.GetSection("system.web/customErrors");
switch (thenum)
{
case 0:
customErrors.Mode = CustomErrorsMode.On;
break;
case 1:
customErrors.Mode = CustomErrorsMode.Off;
break;
case 2:
customErrors.Mode = CustomErrorsMode.RemoteOnly;
break;
default:
customErrors.Mode = CustomErrorsMode.Off;
break;
}
if (redirecturl.Length != 0) { customErrors.DefaultRedirect = redirecturl; }
config.Save();
return "OK";
}
catch (Exception ErrMsg)
{
return ErrMsg.ToString();
}
}
}
}
#endregion