访问第三方库中的web.config文件

我正在编写一个IHttpFilter,它需要在一个单独的项目中(这些都是C#项目)才能在一组ASP.NET MVC应用程序中使用。 在IHttpFilter中,我必须确定web.config文件中指定的一些内容。

有没有办法在运行时从外部程序集中检索当前的web.config文件? 我需要获取三个设置(字符串)。

另一个问题是我需要引用一堆文件(图像),但我不确定是将它放在ASp.NET MVC应用程序还是IHttpHandler项目中。

从外部程序集中我了解到,您指的是由Web应用程序引用的另一个项目生成的程序集。

在运行时,您的Web应用程序将检索其整个配置,包括由引用的程序集检索的配置 – 来自Web应用程序的web.config。 您不必更改IHttpHandler代码中的任何内容。

因此,在设计时,您可能应该在每个项目的配置文件上设置这些设置,在运行时, 所有引用的项目配置文件应该合并到Web应用程序的web.config文件中

关于图像:在我完成的小测试中,我将图像放在引用的项目中,将它们设置为内容并始终复制到输出目录。 当程序集按照我的预期复制到Web应用程序的bin文件夹时,图像不会复制到除自己的项目输出目录之外的任何地方。

因此,为了简单起见,我将把图像放在Web应用程序项目中的适当文件夹中。

以下是我最近编写的一些代码,用于从另一个进程打开web.config文件:

var configFile = new FileInfo(configPath); WebConfigurationFileMap map = new WebConfigurationFileMap(); var appBase = new VirtualDirectoryMapping(configFile.DirectoryName, true, configFile.Name); map.VirtualDirectories.Add("/", appBase); return WebConfigurationManager.OpenMappedWebConfiguration(map, "/"); 

configPath参数只是一个包含web.config路径的字符串。