如何确定在运行时读取哪个配置

时间:2010-01-31 10:51:44

标签: asp.net

我有几个应用程序配置条目。 相同的条目存储在Machine.config / Web.config等中。 我如何确定在运行时读取哪一个..

2 个答案:

答案 0 :(得分:1)

通常,文件夹中的Web.config设置会继承,并且可以覆盖父文件夹中的Web.config文件,应用程序根Web.config文件和machine.config文件中的设置。

因此,最接近的Web.config文件中的设置优先于根Web.config文件和machine.config文件。虽然有一个问题。您无法在所有位置定义所有设置。某些设置只能在machine.config级别定义。有些可以在应用程序根目录级别定义,但不能在子文件夹中定义。

答案 1 :(得分:1)

您可以使用Configuration API打开计算机配置。

ContextInformation.IsMachineLevel就是您所需要的。 Configuration.EvaluationContext为您提供ContextInformation对象,ElementInformation对象为您提供所有信息,包括源文件路径和行号。

http://msdn.microsoft.com/en-us/library/system.configuration.configurationsection_properties.aspx

http://msdn.microsoft.com/en-us/library/system.configuration.contextinformation.ismachinelevel.aspx

http://msdn.microsoft.com/en-us/library/system.configuration.elementinformation_members.aspx

您可以使用OpenMachineConfiguration方法打开特定的配置文件。 http://msdn.microsoft.com/en-us/library/ms228063.aspx