1

因此,在我的 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 文件的事实分离?

4

1 回答 1

1

好吧,您实际上可以对 C# 对象进行序列化和反序列化。

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

生成模式和类: https ://stackoverflow.com/a/11654672/1373170

这样,您只需耦合到其他 C# 类,而不必担心源代码。例如,您甚至可以稍后将格式更改为 JSON,而无需重构所有内容。

于 2012-12-08T01:40:36.747 回答