使用可选方式使用.NET System.configuration指定配置

使用可选方式使用.NET System.configuration指定配置,.net,system.configuration,.net,System.configuration,我使用.NET system.configuration库编写了一些类,用于解析自定义app.config中的配置 它解析如下: <operations> <add type="heres_a_type" parameters="parameter1, parameter2"/> </operations> 我希望继续支持上述类型的配置,但也支持以下内容: <operations> <add type="heres_a_ty

我使用.NET system.configuration库编写了一些类,用于解析自定义app.config中的配置

它解析如下:

<operations>
    <add type="heres_a_type" parameters="parameter1, parameter2"/>
</operations>
我希望继续支持上述类型的配置,但也支持以下内容:

<operations>
    <add type="heres_a_type">
        <parameters>param1, param2</parameters>
    </add>
</operations>
<operations>
    <add type="heres_a_type">
        <parameters>
            <add name="param1" value="param1"/>
        </parameters>
    </add>
</operations>
或者像这样:

<operations>
    <add type="heres_a_type">
        <parameters>param1, param2</parameters>
    </add>
</operations>
<operations>
    <add type="heres_a_type">
        <parameters>
            <add name="param1" value="param1"/>
        </parameters>
    </add>
</operations>
用于参数更复杂的情况,或用于可读性目的。 我希望两者都支持,这样配置在大多数情况下都可以简洁,并在必要时进行扩展

有没有办法通过System.Configuration实现这一点


我第二次尝试将类型和参数作为元素而不是属性添加,并使这两个集都是可选的,但System.Configuration不喜欢我两次定义类型和参数。

此时,为什么不在XML上使用XPath查询呢。我认为这比尝试这样做要容易,配置库显然不打算这么做。上面的xml来自我的app.config。你到底是说我应该改成xpath查询吗?我是说配置库不支持你正在尝试做的事情,所以只需像对待XML文档一样对待配置文件,并更改代码以使用xpath查询查找数据,这使您能够灵活地读取和查找所需结构中的任何节点。是的,这很管用。不过,我不认为我需要以多种方式表示数据的能力,以至于我不想走这条路。如果我不能用配置库以多种方式表示数据,那么我只选择一种方式来表示数据,这将是唯一的方式。