编程语言
首页 > 编程语言> > c# – ConfigurationManager.ConnectionStrings.Add

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