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

问题描述:

我有一个VC2010 C#解决方案,其中包含许多项目。从同一解决方案中的另一个项目引用Web.Config文件C#

因此,例如,我有一个web项目,我有一个类库。

在web.config文件中,我在<appSettings>部分有一个键,例如,

<add key="FileDirectory" value="G:\ftproot\sales" /> 

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

所以,当我引用它在我的web项目(这是MVC) - 我这样做是这样的:

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

这是我的web项目中工作正常。但是,我还需要在类库中引用这个问题,这引出了我的问题 - 有没有办法从另一个项目引用web.config文件中的某个键,例如,一个类库,在相同的解决方案??

所有帮助表示赞赏。 谢谢

是的,你可以使用完全相同的代码。 .Net将在启动应用程序域的应用程序的配置文件中查找配置密钥。这种应用程序使用的类库可以访问它的配置文件。

+0

嗨Gerrie,谢谢你清理那个。它在开始时并不工作,但我添加了System.Configuration的参考,现在它工作正常。一旦时间到了,我会标记为正确! – 109221793 2011-04-07 08:41:49

+0

谢谢,我非常感谢你的回复。 – 2011-04-07 08:49:50

类库没有自己的配置。他们使用哪个可执行文件的配置。

这意味着你应该可以使用相同的代码,它会从配置中读取设置(假设它在那里)。

这并不总是很方便,但(例如,如果你写一个MMC管理单元,因为这意味着你必须修改系统文件夹中的一个mmc.exe.config基于.NET插件。)

您可能更好的方法是将此必需的配置设置传递给您的库代码。那么在你控制配置的应用程序中,你可以从那里读取它并将其传入,在应用程序中,你不能使用另一种方法,如从注册表或手动读取配置文件中读取。或者充分利用这两个世界,让它可以传入,如果没有完成,它会尝试从默认配置中读取它。

This question有关于与dll配置相关的陷阱的一些更多细节,但也有一些技巧来做到这一点,如果你需要。