如何以减少耦合的方式存储XML文件中的数据

时间:2012-12-08 01:16:39

标签: c# xml xml-parsing decoupling

所以在我的C#程序中,我正在阅读一系列用户希望该程序从文件中执行的命令。我目前正在使用XML来存储这些数据。

我很难想出一种存储这些数据的好方法,而不会使用XML数据访问调用乱丢代码,从而将其与仅使用XML相结合。

以下是我正在使用的XML类型(提供上下文)的示例:

<cooking>
    <job>
      <name>Cook Scrambled Eggs</name>
      <device>Robo-Chef</device>
      <action>
        <name>break eggs into pan</name>
      </action>
      <action>
        <name>scramble the eggs</name>
        <duration> 00:01:00</duration>
      </action>
    </job>    

    <trigger>
      <name>Breakfast</name>
      <forJob>Cook Scrambled Eggs</forJob>
      <start_time> Everyday at 7:00 AM</start_time>
    </trigger>    
</cooking>

从调度XML文件中读取和存储我的程序中的数据有什么好方法,这样程序的其余部分就与XML文件中的数据分离了?

1 个答案:

答案 0 :(得分:1)

好吧,你实际上可以序列化和反序列化为C#对象。

在这种情况下,您需要从示例数据中提取XML Schema,使用xsd.exe生成C#类,然后使用XmlSerializer进行序列化和反序列化。

生成架构和类: https://stackoverflow.com/a/11654672/1373170

这样你只会偶然遇到其他C#类,而不用担心来源。您甚至可以稍后将格式更改为JSON,而无需重构所有内容。