是否可以使用System.Configuration读取XML

时间:2014-11-20 10:38:17

标签: c# xml system.configuration

目前我使用XElement解析XML并读取应用程序所需的每个节点。

现在我想使用XML阅读System.Configuration。这是可能的,我的想法。我的config.xml没有任何configuration section。它只是XML

<?xml version="1.0" encoding="utf-8" ?>
<ConfigSetting>
<!--The reports name which needs to be changed in to tethystrader db created on the fly.-->
<ReportsName value="Tethys_Price_report,Tethys_Liquidity_report,Tethys_Liquidity_report_option"/>

<MasterConnectionSetting connectionString="Data Source=NDI-LAP-262\SQL2008R2;Initial Catalog=master;UID=sa;pwd=Brick@123;" />
<!--Create db for check Liquidityreport/execta daily scenario-->
<Setup scenario="LIQ" outputFilePath="..\..\..\..\..\..\Branch_3.2.5">
    <ServerSetting>
        <ConnectionSetting component="RGTestToolDB" connectionString="server=NDI-LAP-262\SQL2008R2;integrated security=SSPI;uid=sa;pwd=Brick@123;database=~;Connection Timeout=1;" />
        <ConnectionSetting component="TethysTrader" connectionString="server=NDI-LAP-262\SQL2008R2;integrated security=SSPI;uid=sa;pwd=Brick@123;database=~;Connection Timeout=1;" />
        <ConnectionSetting component="TethysCommonDB" connectionString="server=NDI-LAP-262\SQL2008R2;integrated security=SSPI;uid=sa;pwd=Brick@123;database=~;Connection Timeout=1;" />      

    </ServerSetting>

    <DB component="TethysTrader">
        <cabfile path="Output\TethysTrader.cab" />
        <cabfile path="Output\TethysTrader-RG.cab" />
        <object  tablename="order_msgs" file="TethysTraderDB\order_msgs.csv" />
        <object  tablename="order_msgs_incoming" file="TethysTraderDB\order_msgs_incoming.csv" />
    </DB>

</Setup>

</ConfigSetting>

请建议。

1 个答案:

答案 0 :(得分:1)

由于这不是有效的配置文件(它不包含<configurationSettings>元素,也不包含<configSections>元素来描述未知部分),因此您无法通过System.Configuration读取它。通过将所有这些数据移动到自定义配置部分,可以更好地实现所需的功能(有关如何执行此操作的详细信息,请参阅the MSDN - 页面讨论ASP.NET,但它可以在ASP.NET外部工作同样)或将这些数据保存在您使用XElement解析的单独文件中(该解决方案没有任何问题)。

使用自定义配置部分的好处是您可以保留一个app.config,这样更易​​于维护和部署。您还可以从.NET配置文件的内置优势中受益,例如能够为每台计算机和每用户文件提供默认值。缺点是你需要为它编写单独的代码(并理解它的工作原理并不是完全无关紧要的。)

将数据保存在您自己解析的单独文件中更容易理解,但是您不能获得对机器或用户特定文件的支持,如果需要,您必须部署和维护两个文件无论如何,app.config中的一些设置。