加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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内容来访问它.但它有点笨拙,我不知道你会通过常规设置文件得到什么.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读