在.NET配置中,您可以编写自己的配置部分,并在如何构建它(如XML)方面拥有相当大的自由度。因此,在大多数情况下,我们这样做:
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="MySection" type="MySectionType, MySectionAssembly" ... />
</configSections>
<MySection>
...
</MySection>
</configuration>
然后,要访问我们的代码部分,我们执行以下操作:
MySection mySection = (MySection) ConfigurationManager.GetSection("MySection");
上面的示例是我看到在代码中获得自定义部分的唯一方法。
现在想象一下,我们有一个库或框架,它定义了MySection
类以及它内部结构的类。我们希望为第三方开发人员提供这些类和结构,这些开发人员将在其应用程序中定义配置文件。同时,我们的框架需要以编程方式获取该部分才能正常运行。
显然,我们框架的最终用户可以绝对自由地将MySection
命名为其他任何内容。因此,上面的代码将无法加载该部分。有没有一个很好的方法来克服这个问题?决定强迫图书馆的消费者只按我们想要的方式命名他们的部分,这是我想避免做的事情。
编辑: 该场景的另一个复杂因素是将该部分放在一个部分组中:
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="MyGroup">
<section name="MySection" type="MySectionType, MySectionAssembly" ... />
</sectionGroup>
</configSections>
<MyGroup>
<MySection>
...
</MySection>
</MyGroup>
</configuration>
是否有可能处理这种情况?
提前致谢。
答案 0 :(得分:1)