2012-12-08 44 views
1

因此,在我的C#程序中,我正在阅读用户希望此程序从文件执行的一系列命令。我目前使用XML来存储这些数据。如何以减少耦合的方式存储来自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文件中的事实分离了吗?

+0

有人可以解释downvotes?这不是一个真正的问题?我在问如何以解耦方式读取XML。这种行为对某些初学者来说是令人沮丧的(在这种情况下是XML)。 – Xantham

回答

1

那么,你可以实际序列化和反序列化为C#对象。

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

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

你只对夫妇到其他C#类,而不是担心源的方式。例如,您甚至可以稍后将格式更改为JSON,而无需重构所有内容。

+0

非常感谢您的回答。我甚至不知道这个存在,那正是我想要的。 – Xantham

+1

当然。我也发现了这个类似的答案,它提供了如何使用XmlSerializer的示例:http://stackoverflow.com/a/364410/1373170 –

相关问题