Modyfikuję niektóre starsze kody, aby wyeliminować ostrzeżenia. XmlDataDocument
i XslTransform
oba generują ostrzeżenia, że są przestarzałe. W przypadku XslTransform
sugerowana zamiana to XslCompiledTransform
, ale nie sugeruje się wymiany dla XmlDataDocument
.Jaka jest nierozastępowana alternatywa dla XmlDataDocument i XslTransform?
Jak mogę zmienić ten kod, aby wyeliminować ostrzeżenia w .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);
Masz rację, że 'XDocument' nie implementuje' IXPathNavigable', tak jak myślałem, ale istnieje metoda rozszerzenia, aby utworzyć 'XPathNavigator' z' XDocument': http://msdn.microsoft.com/en-us/library /bb299124.aspx. Jeśli chodzi o transformowanie do 'TextWriter' lub' StringWriter', powinno to zrobić: http://msdn.microsoft.com/en-us/library/ms163435.aspx. –
Dziękuję bardzo, Martin, to rozwiązanie działało na wielu sekcjach starego kodu. –
Martin, 'XDocument' nie ma metody' CreateNavigator', ale 'XslCompiledTransform.Transform' ma przeciążenie, które akceptuje' XmlReader' zamiast tego, i możesz użyć 'XDocument.CreateReader', aby uzyskać odpowiedni czytnik do przekazania to. –