我有几个应用程序配置条目。 相同的条目存储在Machine.config / Web.config等中。 我如何确定在运行时读取哪一个..
答案 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