定制类型化数据集的ReadXml()
本文关键字:ReadXml 数据集 类型化 | 更新日期: 2023-09-27 17:49:21
我正在为我的强类型DataSet
编写一些额外的信息,因此在其部分类中添加了一对名为ReadXmlEx()
和WriteXmlEx()
的函数。其中,我需要使用基类的ReadXml()
和WriteXml()
读取/写入xml,然后将我自己的节点附加到输出中。
我的问题是,实现这一目标的最佳方法是什么?目前,我使用以下方法:
public void ReadXmlEx(string filename)
{
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.Load(filename);
this.Custom1 = doc.FirstChild.NextSibling.ChildNodes[0].Value;
//Here I need to move to ChildNodes[1] and pass the remaining tree to base class's ReadXml()
}
阅读上面的评论,我如何实现这一点?基类的ReadXml()可以接受Stream
对象,但我不确定如何将ChildNode
转换为Stream
或XmlReader
。
您可以尝试用这种方式将XmlNode
(node
)转换为Stream
(MemoryStream
):
var node = doc.FirstChild.NextSibling.ChildNodes[1];
MemoryStream ms = new MemoryStream();
StreamWriter sw = new StreamWriter(ms);
sw.Write(node.OuterXml);
sw.Flush();
myDataTable.ReadXml(ms);