【发布时间】:2011-01-12 15:44:42
【问题描述】:
DataContractSerializer 在 ReadObject 中使用的读取器似乎是基于流的。我已经有一个 XMLDocument,我想反序列化该文档的一部分。
在这段代码 sn-p 中,我从文件流中反序列化一个 MyItem 对象:
Dim fs As New FileStream("c:\myinputfile.xml", FileMode.Open)
Dim reader As XmlDictionaryReader = XmlDictionaryReader.CreateTextReader(fs, New XmlDictionaryReaderQuotas())
Dim ser As New DataContractSerializer(GetType(MyItemClass))
Dim deserializedMyItem As ClassTemplate = CType(ser.ReadObject(reader, True), MyItemClass)
但是如果我只想反序列化文档的一部分呢?
Dim MyItemNode as Xml.XmlNode = parentDoc.selectSingleNode("MyItemElementName")
Dim deserializedMyItem As MyItemClass = getMyItemFromNode(MyItemNode)
getMyItemFromNode 是什么样的?
【问题讨论】:
-
可能性似乎是将节点转换为内存流或将其复制到新文档,但似乎应该有更简单的方法。
标签: .net xml-serialization datacontractserializer