c# – ConfigurationManager.ConnectionStrings.Add
发布时间:2020-12-15 21:53:18 所属栏目:百科 来源:网络整理
导读:我的想法在这里很难看 – 在ConfigurationManager.ConnectionStrings上有一个Add方法 但是,如果我使用它,它会抛出“只读”错误消息.我对该问题的研究表明,我们无法在运行时以编程方式将连接字符串添加到app.config中.有一种解决方法,使用反射将ReadOnly标志
我的想法在这里很难看 – 在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内容来访问它.但它有点笨拙,我不知道你会通过常规设置文件得到什么. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |