定制类型化数据集的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转换为StreamXmlReader

定制类型化数据集的ReadXml()

您可以尝试用这种方式将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);