Класс XslTransform устарел после преобразования .NET - PullRequest
1 голос
/ 22 июня 2011

У меня было XslTransform в старой программе, и после преобразования кода в .NET F 3.5 компилятор сказал, что XslTransform устарел и заменен XslCompiledTransform.

Это старый код:

XslTransform xslt = new XslTransform();
xslt.Load(xslTemplate);
xslt.Transform(xPathNav, null, fileStream, null);

Я изменил код, чтобы он выглядел так:

XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(xslTemplate); 
xslt.Transform(xPathNav, fileStream);

А теперь я получаю:

не может конвертировать из 'System.IO.FileStream' для 'System.Xml.XmlWriter'

Я попытался исправить это, добавив следующее:

XPathDocument doc = new XPathDocument(fileStream);
XmlWriter writer = XmlWriter.Create(Console.Out, xslt.OutputSettings);
xslt.Transform(doc, writer);

Я больше не получаю ошибок, но код не выполняет преобразование XML.

Есть идеи?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 22 июня 2011

Я думаю,

XslTransform xslt = new XslTransform();
xslt.Load(xslTemplate);
xslt.Transform(xPathNav, null, fileStream, null);

можно записать с помощью XslCompiledTransform

XslTransform xslt = new XslCompiledTransform();
xslt.Load(xslTemplate);
xslt.Transform(xPathNav, null, fileStream);
следующим образом
2 голосов
/ 22 июня 2011

В MSDN есть полная статья по Миграция с XslTransform на XslCompiledTransform

0 голосов
/ 22 июня 2011

В первой паре фрагментов кода вы, похоже, используете fileStream для вывода и xPathNav для ввода.

Но в последнем фрагменте вы используете fileStream (через doc) для ввода.

Вы действительно изменили fileStream на свой входной документ, или это ошибка?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...