微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐