在App.Config中添加如下的节
<connectionStrings>
<add name="alarmEntities" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string="Data Source=DBC-20110831PAC;Initial Catalog=alarm;Integrated Security=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
</connectionStrings>
<appSettings>
<clear />
<add key="SerialPortName" value="COM1" />
<add key="Interval" value="1000" />
<add key="AutoRun" value="false" />
</appSettings>
在AppConfig.cs中读写参数
public sealed class AppConfig
{
#region PrivateMethod
// 读取appStrings配置节
///<summary>
///返回*.exe.config文件中appSettings配置节的value项
///</summary>
///<param name="strKey"></param>
///<returns></returns>
private static string GetAppConfig(string strKey)
{
foreach (string key in ConfigurationManager.AppSettings)
{
if (key == strKey)
{
return ConfigurationManager.AppSettings[strKey];
}
}
return null;
}
// 更新connectionStrings配置节
///<summary>
///在*.exe.config文件中appSettings配置节增加一对键、值对
///</summary>
///<param name="newKey"></param> ///<param name="newValue"></param>
private static void UpdateAppConfig(string newKey, string newValue)
{
bool isModified = false;
foreach (string key in ConfigurationManager.AppSettings)
{
if (key == newKey)
{
isModified = true;
}
}
// Open App.Config of executable
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
// You need to remove the old settings object before you can replace it
if (isModified)
{
config.AppSettings.Settings.Remove(newKey);
}
// Add an Application Setting.
config.AppSettings.Settings.Add(newKey, newValue); // Save the changes in App.config file.
config.Save(ConfigurationSaveMode.Modified); // Force a reload of a changed section.
ConfigurationManager.RefreshSection("appSettings");
}
#endregion
#region PublicMethod
///<summary> ///依据连接串名字connectionName返回数据连接字符串 ///</summary>
///<param name="connectionName"></param> ///<returns></returns>
private static string GetConnectionStringsConfig(string connectionName)
{
string connectionString = ConfigurationManager.ConnectionStrings[connectionName].ConnectionString.ToString();
Console.WriteLine(connectionString); return connectionString;
}
///<summary> ///更新连接字符串 ///</summary>
///<param name="newName">连接字符串名称</param>
///<param name="newConString">连接字符串内容</param>
///<param name="newProviderName">数据提供程序名称</param>
private static void UpdateConnectionStringsConfig(string newName, string newConString)
{
bool isModified = false; //记录该连接串是否已经存在 //如果要更改的连接串已经存在
if (ConfigurationManager.ConnectionStrings[newName] != null)
{
isModified = true;
}
//新建一个连接字符串实例
ConnectionStringSettings mySettings = new ConnectionStringSettings(newName, newConString);
// 打开可执行的配置文件*.exe.config
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
// 如果连接串已存在,首先删除它
if (isModified)
{
config.ConnectionStrings.ConnectionStrings.Remove(newName);
}
// 将新的连接串添加到配置文件中.
config.ConnectionStrings.ConnectionStrings.Add(mySettings);
// 保存对配置文件所作的更改
config.Save(ConfigurationSaveMode.Modified);
// 强制重新载入配置文件的ConnectionStrings配置节
ConfigurationManager.RefreshSection("ConnectionStrings");
}
public static String GetSerialport()
{
String SerialPortName = AppConfig.GetAppConfig("SerialPortName");
try
{
if (!SerialPortName.Substring(0, 3).Equals("COM")) throw new Exception();
if (Int32.Parse(SerialPortName.Substring(3)) < 1) throw new Exception();
}
catch
{
SerialPortName = "COM1";
AppConfig.UpdateAppConfig("SerialPortName", "COM1");
}
LogHelper.WriteInfo(String.Format("成功读取通信串口参数设置,其值为: {0}。", SerialPortName));
return SerialPortName;
}
public static void SetSerialport(String SerialPortName)
{
AppConfig.UpdateAppConfig("SerialPortName", SerialPortName);
LogHelper.WriteInfo(String.Format("成功写入通信串口参数设置,其值为: {0}。", SerialPortName));
}
public static Int32 GetInterval()
{
String strInterval = AppConfig.GetAppConfig("Interval");
Int32 Interval;
try { Interval = Int32.Parse(strInterval); }
catch
{
Interval = 24;
AppConfig.UpdateAppConfig("Interval", "24");
}
LogHelper.WriteInfo(String.Format("成功读取间隔时间,其值为: {0}毫秒。", Interval));
return Interval;
}
public static void SetInterval(Int32 Interval)
{
AppConfig.UpdateAppConfig("Interval", Interval.ToString());
LogHelper.WriteInfo(String.Format("成功写入间隔时间,其值为: {0}毫秒。", Interval));
}
public static Boolean GetAutoRun()
{
String strAutoRun = AppConfig.GetAppConfig("AutoRun");
Boolean AutoRun=true;
try { AutoRun = Boolean.Parse(strAutoRun); }
catch
{
strAutoRun = "true";
AppConfig.UpdateAppConfig("AutoRun", "true");
}
LogHelper.WriteInfo(String.Format("成功读取自动启动设置,其值为: {0}。", strAutoRun));
return AutoRun;
}
public static void SetAutoRun(Boolean AutoRun)
{
AppConfig.UpdateAppConfig("AutoRun", AutoRun.ToString());
LogHelper.WriteInfo(String.Format("成功写入自动启动设置,其值为: {0}。", AutoRun));
}
#endregion
}