c# – ConfigurationManager.ConnectionStrings.Add
作者:互联网
我的想法在这里很难看 – 在ConfigurationManager.ConnectionStrings上有一个Add方法
但是,如果我使用它,它会抛出“只读”错误消息.我对该问题的研究表明,我们无法在运行时以编程方式将连接字符串添加到app.config中.有一种解决方法,使用反射将ReadOnly标志设置为false
这是反射的例子:
public static void AddConnectionString(SqlConnectionStringBuilder connectionString,string Name)
{
try
{
typeof(ConfigurationElementCollection).GetField("bReadOnly", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(ConfigurationManager.ConnectionStrings, false);
ConfigurationManager.ConnectionStrings.Add(new ConnectionStringSettings(Name, connectionString.ConnectionString));
EventLogger.LogEvent("Added ConnectionString",1);
ProtectConnectionStrings();
}
catch (Exception ex)
{
EventLogger.LogError(ex.Message,(int)EventLogger.Events.GeneralException);
}
}
但这对我来说都没有意义.我想在app.config中存储conStrs,以便我可以加密它们.我需要用户能够在运行时将它们添加到app.config.完成此任务的标准方法是什么?
解决方法:
app.config文件不应由应用程序编辑.告诉其情况的一种方法是考虑它所在的位置 – 在文件夹中的可执行文件旁边(默认情况下)用户或用户的应用程序(程序文件)无法写入.
我想说如果用户正在修改它,它应该存储在设置中.
或者,您可以创建自定义配置文件并使用相同的System.Configuration内容来访问它.但它有点笨拙,我不知道你会通过常规设置文件得到什么.
标签:c,net,app-config 来源: https://codeday.me/bug/20190709/1409046.html