2011-07-31 139 views

回答

0

你可以制作一个XSD文件来定义你的类。然后,您可以使用内置的.NET XMLSerializer将您的类写入XML文件。您可以使用XSD在反序列化过程中验证输入。

或者您可以为您的课程应用Serializable属性。

+0

你可以在没有XSD的情况下做到这一点 –

0

一个快速的谷歌显示this article在开关上代码与关于如何序列化和反序列化到XML的例子。这里是序列化和反序列化对象的代码示例。

static public void SerializeToXML<_type>(_type item,string fileName) 
{ 
    XmlSerializer serializer = new XmlSerializer(item.GetType()); 
    TextWriter textWriter = new StreamWriter(fileName); 
    serializer.Serialize(textWriter, item); 
    textWriter.Close(); 
} 

static _type DeserializeFromXML<_type>(string fileName) 
{ 
    XmlSerializer deserializer = new XmlSerializer(typeof(_type)); 
    TextReader textReader = new StreamReader(fileName); 

    _type item = (_type)deserializer.Deserialize(textReader); 
    textReader.Close(); 

    return item; 
} 
+0

这是否适用于领域? – user807566

+1

是的,你可能想看看这个MSDN文章如何获得更多的序列化控制:http://msdn.microsoft.com/en-us/library/2baksw0z(v=vs.80).aspx –

1

生成XSD如下:

"$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\@InstallationFolder)\bin\xsd.exe" /n:"$(ProjectName).Namespace" "$(ProjectDir)\<YourXML>" 

这应该是1次的事情,因为你的验证将保持不变。

在项目中创建一个预生成事件如下生成类:

<PreBuildEvent> 
    "$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\@InstallationFolder)\bin\xsd.exe" /n:"$(ProjectName).Namespace" "$(ProjectDir)\<YourXSD>" /c /o:"$(ProjectDir)\<GeneratedClassFolder>" 
</PreBuildEvent> 

然后你可以使用内置的.NET的XMLSerializer到类写一个XML文件。

相关问题