相关疑难解决方法(0)

在运行时更改默认app.config

我有以下问题:
我们有一个加载模块的应用程序(添加).这些模块可能需要app.config中的条目(例如WCF配置).因为模块是动态加载的,所以我不希望在我的应用程序的app.config文件中包含这些条目.
我想做的是以下内容:

  • 在内存中创建一个新的app.config,它包含模块中的配置部分
  • 告诉我的应用程序使用新的app.config

注意:我不想覆盖默认的app.config!

它应该透明地工作,以便例如ConfigurationManager.AppSettings使用该新文件.

在我这个问题的评价,我用同样的解决方案提出了为这里提供:刷新的app.config与NUnit的.
不幸的是,它似乎没有做任何事情,因为我仍然从正常的app.config获取数据.

我用这段代码来测试它:

Console.WriteLine(ConfigurationManager.AppSettings["SettingA"]);
Console.WriteLine(Settings.Default.Setting);

var combinedConfig = string.Format(CONFIG2, CONFIG);
var tempFileName = Path.GetTempFileName();
using (var writer = new StreamWriter(tempFileName))
{
    writer.Write(combinedConfig);
}

using(AppConfig.Change(tempFileName))
{
    Console.WriteLine(ConfigurationManager.AppSettings["SettingA"]);
    Console.WriteLine(Settings.Default.Setting);
}
Run Code Online (Sandbox Code Playgroud)

它打印相同的值twices,虽然combinedConfig包含除正常app.config之外的其他值.

.net c# app-config

128
推荐指数
4
解决办法
8万
查看次数

如何在.net中以编程方式设置连接字符串配置?

我想以编程方式设置连接字符串,绝对不会更改任何配置文件/注册表项.

我有这段代码,但不幸的是它引发了一个例外,"配置是只读的".

ConfigurationManager.ConnectionStrings.Clear();
string connectionString = "Server=myserver;Port=8080;Database=my_db;...";
ConnectionStringSettings connectionStringSettings = 
  new ConnectionStringSettings("MyConnectionStringKey", connectionString);
ConfigurationManager.ConnectionStrings.Add(connectionStringSettings);
Run Code Online (Sandbox Code Playgroud)

编辑: 问题是我有现有的代码从配置中读取连接字符串.因此,手动或通过资源设置配置字符串似乎不是有效的选项.我真正需要的是一种以编程方式修改配置的方法.

.net configuration connection-string

59
推荐指数
5
解决办法
6万
查看次数

标签 统计

.net ×2

app-config ×1

c# ×1

configuration ×1

connection-string ×1