在.NET中理解ConfigurationManager

7

我正试图通过在不同场景下进行实践来理解.NET中的ConfigurationManager。

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

我的情况是:在project1的app.config文件中有一节(serializedfilename),并且在project1的class1中有这行代码:

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

在project2中,我调用了project1的class1类中的一个方法,但是出现了异常。似乎.NET在从project2调用project1时无法找到project1中app.config文件中的设置,尽管我已经正确引用了project1。然而,当我将section(serializedfilename)移到project2的app.config文件中时,一切都正常工作了...有人能解释一下这里发生了什么吗?我倾向于认为ConfigurationManager只存在于客户端应用程序的上下文中(在这种情况下是project2),而不是原始应用程序(在这种情况下是project1)。注意:我是新手(1个月+的.NET)。谢谢。
2个回答

3

当您添加引用时,app.Config 文件不会被复制。App.config 文件需要在您的主项目中,对于您的情况是项目 2。如果您将其添加到项目 2 中并在被引用的对象项目 1 中调用它,则不会出现任何错误,因为 VS 将从您的主项目中选取它。


1

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

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


谢谢。但是为什么文档没有这样说呢...http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.aspx - oliverdejohnson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接