XmlSerializer:保留未知元素公共字符串姓氏;publicCustomer(){}publicCustomer(stringfirstName,stringlastName){FirstName=firstName;姓氏=姓氏;}publicstaticCustomerLoad(TextReaderreader){XmlSerializer反序列化器=newXmlSerializer(typeof(Customer));返回(客户)反序列化器。反序列化(读者);}publicvoidSave(TextWriterwriter){XmlSerializerserializer=newXmlSerializer(GetType());serializer.Serialize(writer,this);在这个类的新版本中,我添加了一个新的属性publicstringMiddleName;用户同时安装了我的程序的新旧版本的常见用例。他们都读取和写入同一个序列化文件。将新版本写入文件时,将写入所有三个属性(FirstName、LastName、MiddleName)。旧程序读取文件但忽略了未知元素MiddleName。它保存没有MiddleName的文件,因此它的价值对于较新的程序来说是丢失的。有没有办法在序列化时反序列化和“合并”未知元素的同时存储原始XML?旧程序忽略未知元素,但将它们写回到文件中,这样新程序就不会丢失它们。我现在无法测试它,因为我在MacOSX上,但XmlAnyElement应该可以工作:[XmlAnyElement]publicXmlElement[]Unsupported{get;放;}XMLSerializer序列化。没有资料怎么连载呢?您可以做的是更新xmlfile而不是序列化和覆盖它。这是额外的工作,因为您必须自己遍历文件,但它可以让您实现您想要的。如何使用.NETFrameworkSDK中的XmlDocument类来修改和保存XML。以上就是C#学习教程:XmlSerializer:Keepallthecontentsharebyunknownelements。如果对大家有用,需要进一步了解C#学习教程,还望大家多加关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
