什么是XmlDataDocument和XslTransform的非弃用替代品?

Ale*_*yes 8 c# xslt .net-4.0

我正在修改一些遗留代码以尝试消除警告. XmlDataDocument并且XslTransform都会生成过时的警告.在XslTransform建议更换的情况下XslCompiledTransform,但不建议更换XmlDataDocument.

如何更改此代码以消除.NET 4中的警告:

var xmlDoc = new System.Xml.XmlDataDocument(myDataSet);
var xslTran = new System.Xml.Xsl.XslTransform();
xslTran.Load(new XmlTextReader(myMemoryStream), null, null);
var sw = new System.IO.StringWriter();
xslTran.Transform(xmlDoc, null, sw, null);
Run Code Online (Sandbox Code Playgroud)

Mar*_*nen 8

XDocument doc = new XDocument();
using (XmlWriter xw = doc.CreateWriter())
{
  myDataSet.WriteXml(xw);
  xw.Close();
}

XslCompiledTransform proc = new XslCompiledTransform();
using (XmlReader xr = XmlReader.Create(myMemoryStream))
{
  proc.Load(xr);
}

string result;

using (StringWriter sw = new StringWriter())
{
  proc.Transform(doc.CreateNavigator(), null, sw);  // needs using System.Xml.XPath;
  result = sw.ToString();
}
Run Code Online (Sandbox Code Playgroud)

我应该这么想.当然我只使用MemoryStream来加载样式表,而StringWriter用于将转换结果发送到你使用它们的代码片段.通常还有其他输入源或输出目标,如文件,流或Textreader.