c# - 如何从另一个程序集读取 app.config?

标签 c# app-config

我有两个项目:

  • 控制台项目 (Test.exe)
  • 类库项目 (Test.Data.dll)

我的类库项目包含一个 app.config 文件。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <connectionStrings>
    <add name="TestEntities" connectionString="metadata=res://*/DBNews.csdl|res://*/DBNews.ssdl|res://*/DBNews.msl;provider=System.Data.SqlClient;provider connection string=&quot;{0}&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>

我想从控制台项目访问类库中的设置,所以我试过:

var config = ConfigurationManager.OpenExeConfiguration("Test.Data.dll");
config.ConnectionStrings.ConnectionStrings[0].Name; // LocalSqlServer
// seems to be the wrong assembly.

和:

var config = ConfigurationManager.OpenExeConfiguration("Test.Data.dll.config");
// invalid exePath

如何访问 DLL 的 app.config

最佳答案

DLL 在运行时没有自己的 app.config。 app.config 仅适用于 Entity Framework 设计器。

在执行期间,DLL 将尝试从应用程序的 app.config 文件中读取值。对于 Entity Framework 连接,这意味着您必须将连接信息复制到应用程序的 app.config 中。

关于c# - 如何从另一个程序集读取 app.config?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4889377/

相关文章:

c# - app.config修改值c#

c# - 使用配置元素集合 c# 实现自定义部分

c# - 如果 CancellationToken 是一个 struct 并通过 Value 传递,它是如何更新的?

c# - DataGrid 中的进度条

c# - 与 ConfigurationManager 耦合或将参数从一个传递到另一个

java - 如何加密我的 config.raw 文件以避免任何类型的攻击?

c# - 以编程方式打印文档

c# - 如何访问其他类中的控件

c# - 特殊字符未保存在 MS SQL 中

c# - 我如何使用类库的 App.config 中的连接字符串?