0

我有一个存储过程,它接受从一些 .NET/ADO.NET 代码调用的 xml 参数 (SqlDbType.Xml)。我已经通过使用 System.XML.XMLReader 从文件中读取一些测试 XML 的测试工具对此进行了测试;

Dim xmlParam As SqlParameter = New SqlParameter("@xml", SqlDbType.Xml)
xmlParam.Value = New SqlTypes.SqlXml(XmlReader.Create(txtXMLFile.Text))
.Parameters.Add(xmlParam)

在此代码要进入的应用程序中,实际的 XML 在一个 VB6 对象中,在一个 MSXML2.DOMDocument40 对象中(VB6 项目引用 MSXML4)我已经研究了如何将 MSXML.DOMDocument40 从 VB6 编组到 .NET - 在事实上,.NET 项目已经引用了 MSXML4,所以这一切都很好。现在我需要做的就是正确转换它,以便它可以传递到存储的过程中。

System.XML.XMLReader 有许多采用流对象的重载,我想知道是否可以在 MSXML 对象之上创建一个流?或者如果我可以将 MSXML 转换为 .NET XML 类型,然后可以使用?

显然性能将是一个考虑因素,但目前我只需要弄清楚如何以任何方式做到这一点!

4

2 回答 2

0

更好的主意是根本不混合 MSXML 和 .NET。

如果必须,则从 MSXML 对象获取 xml 字符串,并在字符串上创建 XmlReader,或者将字符串加载到 XmlDocument 中。

于 2009-03-10T10:33:55.827 回答
0

MSXML DOM 将保存到任何实现 COM IStream 接口的地方,因此如果您能找到映射到 .NET 流的实现,您应该能够相当有效地实现这一目标。

于 2009-03-10T10:39:52.507 回答