gpt4 book ai didi

c# - 我可以在运行时将 ConnectionStrings 添加到 ConnectionStringCollection 吗?

转载 作者:IT王子 更新时间:2023-10-29 04:40:45 25 4
gpt4 key购买 nike

有没有一种方法可以在 Asp.Net 应用程序运行时向 ConfigurationManager 返回的 ConnectionStringCollection 添加连接字符串?

我已经尝试了以下但被告知配置文件是只读的。

ConfigurationManager.ConnectionStrings.Add(new ConnectionStringSettings(params));

有没有其他方法可以在运行时执行此操作?我知道在设计时我可以向 web.config 添加一个连接字符串;但是,我希望在运行时向该集合添加一些内容。

谢谢

编辑:我尝试这样做的原因之一是由于安全要求阻止我将 ConnectionStrings 放在 web.config 中(即使是加密的)。我想在我的项目中使用 Membership 和 Profiles 等元素;但是,我正在寻找一种替代方法,而不是编写自定义提供程序。自定义提供程序并没有那么糟糕,但如果我能找到更简单的解决方案,我会全力以赴。

最佳答案

您可以使用反射来禁用私有(private) bReadOnly 字段(坏主意等):

typeof(ConfigurationElementCollection)
.GetField("bReadOnly", BindingFlags.Instance | BindingFlags.NonPublic)
.SetValue(ConfigurationManager.ConnectionStrings, false);
ConfigurationManager.ConnectionStrings.Add(new ConnectionStringSettings());

这类似于 modify an existing connection string 所需的技术,并由 Brian Rodgers 添加为评论。

关于c# - 我可以在运行时将 ConnectionStrings 添加到 ConnectionStringCollection 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/357465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com