目前我使用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>
请建议。
答案 0 :(得分:1)
由于这不是有效的配置文件(它不包含<configurationSettings>
元素,也不包含<configSections>
元素来描述未知部分),因此您无法通过System.Configuration
读取它。通过将所有这些数据移动到自定义配置部分,可以更好地实现所需的功能(有关如何执行此操作的详细信息,请参阅the MSDN - 页面讨论ASP.NET,但它可以在ASP.NET外部工作同样)或将这些数据保存在您使用XElement
解析的单独文件中(该解决方案没有任何问题)。
使用自定义配置部分的好处是您可以保留一个app.config
,这样更易于维护和部署。您还可以从.NET配置文件的内置优势中受益,例如能够为每台计算机和每用户文件提供默认值。缺点是你需要为它编写单独的代码(并理解它的工作原理并不是完全无关紧要的。)
将数据保存在您自己解析的单独文件中更容易理解,但是您不能获得对机器或用户特定文件的支持,如果需要,您必须部署和维护两个文件无论如何,app.config
中的一些设置。