在同一解决方案中的另一个项目中引用Web.Config文件 C#

13
我有一个包含多个项目的VC2010 C#解决方案。
例如,我有一个Web项目和一个类库。
在web.config文件中,我有一个位于部分的键。
<add key="FileDirectory" value="G:\ftproot\sales" />

我还在Web.Production.config文件中添加了一个键,以反映服务器上的文件目录。

因此,在我的Web项目(它是MVC)中引用它时,我这样做:

var FTPPath = ConfigurationManager.AppSettings["FileDirectory"];

这在我的Web项目中很好用。然而,我还需要在类库中引用它,这就是我的问题 - 是否有一种方法可以从另一个项目(例如同一解决方案中的类库)中引用Web.config文件中的键?

非常感谢任何帮助。

2个回答

15

可以直接使用相同的代码。.NET会在启动应用程序域的应用程序配置文件中查找配置键。由此类应用程序使用的类库将可以访问其所属的配置文件。


嗨,Gerrie,感谢你澄清了这个问题。一开始它没有工作,但我添加了一个System.Configuration的引用,现在一切都正常了。一旦时间限制到期,我会标记为正确答案! - 109221793
谢谢,我非常感激您的回复。 - Gerrie Schenck
你如何从另一个项目中获取web.config的设置?这对我来说只是返回null。我想要获取的设置位于自定义标记组节内。 - naz786

3

类库本身没有自己的配置。它们使用它们被用在哪个可执行程序的配置。

这意味着你可以使用相同的代码,并从配置文件(如果有)读取设置。

但是这并不总是方便的(例如,如果你为MMC snap-in编写了基于.net的插件,那么这意味着你必须修改系统文件夹中的mmc.exe.config文件)。

你最好有一种方法将所需的配置设置传递到库代码中。在你控制配置的应用程序中,可以从配置文件中读取并传递它,在你不能控制配置的应用程序中,可以使用另一种方法,如从注册表或手动读取配置文件。或者最好两者兼备,使它能够传入,如果没有进行设置,它将尝试从默认配置中读取。

这个问题提供了一些有关dll配置的陷阱的详细信息,但也提供了一些必要的技巧。


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