7

我试图通过在不同的场景中练习来理解 .NET 中的 ConfigurationManager。

我有两个项目:Project1 和 Project2。Project2 使用 Project1。

我的情况:我在 project1 的 app.config 文件中有一个部分(序列化文件名)。我在 project1 的 class1 中有这行代码

 private static string SerializedConfiguration = ConfigurationManager.AppSettings["SerializedFilename"];

在 project2 中,我在 project1 的 class1 中调用了一个方法,但出现异常。

即使我适当地引用了 project1,当从 project2 调用时,.NET 似乎也无法在 project1 的 app.config 文件中找到设置。

但是,当我将部分(序列化文件名)移动到 project2 的 app.config 文件时......一切似乎都运行良好......

有人可以向我解释这里发生了什么吗?我很想假设 ConfigurationManager 仅存在于客户端应用程序的上下文中(在本例中为 project2),而不存在于原始应用程序中(在本例中为 project1)

注意:我是新手(1 个月以上到 .NET)

谢谢。

4

2 回答 2

3

添加引用时 app.Config 不会被复制。App.config 需要在您的主项目中,在您的案例项目 2 中。如果您在项目 2 中添加它并在引用的对象项目 1 中调用它,您将不会收到任何错误,因为 VS 将从您的主项目中选择它。

于 2013-07-26T15:34:24.593 回答
1

正确,ConfigurationManager 查找 app.config 或 web.config 的执行程序集以查找设置。

因此,如果访问配置设置的类库 DLL 在网站项目下运行,则需要将应用设置添加到 web.config,而不是类库的 app.config。

于 2013-07-26T15:34:52.603 回答