我最近开始使用 IConfigurationSectionHandler 作为我的 BL DLL 的自定义配置部分。我在 web.config 文件中使用它来将设置值传递给 BL DLL。

虽然它完美地读取本地 web.config,但问题是读取包含共享设置的全局配置文件(根 web.config)。

我怎样才能使用 IConfigurationSectionHandler 做到这一点?

最佳答案

为了正确回答您的问题,我们可能需要从您的自定义部分处理程序中查看一些代码。

但是,立即想到的一点是,您可能没有正确使用传递给处理程序的 parent 参数。

只是为了让我们的术语在同一页面上,我将引用 'Create' 方法,它是 IConfigurationSectionHandler.Create 的实现,以及 configuration object ,它是您从 'Create' 方法返回的对象。

非常简单,您的部分处理程序 Create 方法应该在 web.config 文件层次结构中每次出现您的自定义部分时调用。每次调用时,您从 Create 返回的先前配置对象将作为 parent 参数传递到下一次调用中,当然,第一次调用将有一个 null 父级,这表明您需要创建此初始“配置对象”,后续调用应该不是创建一个新的 configuration objec t 而是添加或修改作为父项传入的那个。

最终结果是,当您从文件中读取配置时,您会收到一个“配置对象”,其中包含所有级别的设置总和。

注意: 你真的应该使用 ConfigurationSection ,因为 IConfigurationSectionHandler 自 Framework 2.0 以来已被弃用。这是使用此类的链接。

http://msdn.microsoft.com/en-us/library/2tw134k3.aspx

关于c# - 如何使用 IConfigurationSectionHandler 进行全局配置?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3694253/

10-12 12:38
查看更多