Я пробовал и пытался, но мне не удается войти в XslCompiledTransform без необходимости загружать таблицу стилей с диска (путем передачи URI в метод XslCompiledTransform.Load ()).
Я полностью осознаю, что вы можете войти в метод XslCompiledTransform.Transform (), только если вы загрузили таблицу стилей с диска через URI (как уже упоминалось) или загрузили таблицу стилей из XmlReader, который реализует интерфейс IXmlLineInfo.
Я загрузил таблицу стилей следующим образом:
XslCompiledTransform xslt = new XslCompiledTransform(true);
//grab string from textbox
XmlReader reader = XmlReader.Create(new StringReader(XsltBox.Text));
// Compile the style sheet.
xslt.Load(reader);
Судя по тому, что из прочитанной мною литературы, можно разрешить отладку. Однако, когда я пытаюсь войти в метод XslCompiledTransform.Transform (), я получаю сообщение: «Нет исходного кода, доступного для текущего местоположения»
Как уже упоминалось, я могу перейти к преобразованию, если сделаю следующее:
string stylesheet = @"C:\PathToMy\Stylesheet.xsl";
// Enable XSLT debugging.
XslCompiledTransform xslt = new XslCompiledTransform(true);
//compile stylesheet
xslt.Load(stylesheet);
Вышеуказанный метод невозможен, так как я не хочу постоянно читать с диска.
спасибо вам за этот полезный комментарий, я не осознавал, что Microsoft сделала это, я уверен, что это будет очень полезным в будущем.
однако, полагаю, я не совсем ясно выразился в своем вопросе. я не собирался входить в метод load, я хотел войти в метод transform, чтобы видеть, что происходит с преобразованием xsl. я подчеркнул метод загрузки, потому что параметр, который вы передаете, определяет, можете ли вы отладить метод преобразования (для этого необходимо передать XmlReader, который реализует интерфейс IXmlLineInfo).
хотя я мог бы перейти к методу преобразования, используя выделенную вами технику, я бы просто пошагово прошел по коду. хотя я потенциально мог бы решить, что происходило с преобразованием, наблюдая за кодом, отладчик xsl построчно показывает пошаговое выполнение самой таблицы стилей (в отличие от кода, выполняющего каждую строку преобразования)