首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ConfigurationManager.ConnectionStrings.Add

ConfigurationManager.ConnectionStrings.Add
EN

Stack Overflow用户
提问于 2013-07-12 03:33:02
回答 1查看 1.6K关注 0票数 4

我在这里很困惑-在ConfigurationManager.ConnectionStrings上有一个Add方法,但是如果我使用它,它会抛出一个“只读”的错误消息。我对这个问题的研究表明,我们不能在运行时以编程方式将连接字符串添加到app.config。可以使用反射将ReadOnly标志设置为false来解决此问题

下面是使用反射的示例:

代码语言:javascript
复制
 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);
        }

    }

但这一切对我来说都说不通。我想将conStrs存储在app.config中,这样我就可以对它们进行加密。我需要用户能够在运行时将它们添加到app.config。实现这一目标的标准方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-12 03:38:25

app.config文件不应由应用程序编辑。判断这种情况的一种方法是考虑它的位置--在用户或用户的应用程序(程序文件)(默认情况下)不可写的文件夹中的可执行文件旁边。

我想说的是,如果它是用户正在修改的东西,那么它应该存储在设置中。

或者,您可以创建自定义配置文件并使用相同的System.Configuration内容来访问它。但它有点笨拙,我不确定你能从常规的设置文件中得到什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17601855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档