2010-10-09 14 views
9

Estoy depurando una transformación con Visual Studio. La aplicación que utiliza la transformada normalmente también pasa en algunos parámetros:Pasar argumentos al depurador XSLT de Visual Studio

XslTransform xslTransform = new XslTransform(); 
xslTransform.Load(myXslt); 
XsltArgumentList transformArgumentList = new XsltArgumentList(); 
transformArgumentList.AddParam(paramName1, String.Empty, paramValue1); // this 
transformArgumentList.AddParam(paramName2, String.Empty, paramValue2); // and this 
xslTransform.Transform(inputStream, transformArgumentList, outputStream); 

¿Cómo puedo configurar los parámetros al depurar?

+0

Buena pregunta, 1. Vea mi respuesta para la solución y un ejemplo completo. –

Respuesta

7

¿Cómo puedo establecer los parámetros cuando se depura ?

Se debe utilizar la siguiente XslCompiledTransform constructor:

public XslCompiledTransform(
    bool enableDebug 
) 

con el argumento enableDebug establecido en true.

Luego puede iniciar la depuración y el depurador se detendrá en los puntos de interrupción establecidos en su transformación XSLT.

Aquí se muestra un ejemplo:

// Enable XSLT debugging. 
XslCompiledTransform xslt = new XslCompiledTransform(true); 

// Load the style sheet. 
xslt.Load("MyTransformation.xsl"); 

// Create the writer. 
XmlWriterSettings settings = new XmlWriterSettings(); 
settings.Indent=true; 
XmlWriter writer = XmlWriter.Create("output.xml", settings); 

// Execute the transformation. 
xslt.Transform("books.xml", writer); 
writer.Close(); 

Por supuesto, si usted es perezoso, es posible que sólo codificar los valores de los parámetros en su hoja de estilo XSLT:

<xsl:param name="param1" select="SomeValue1"/> 
<xsl:param name="param2" select="SomeValue2"/> 
+0

¿Es esta la única manera de hacer esto? Prefiero no tener que ejecutar la aplicación completa cada vez, ya que hay mucho trabajo realizado antes de la transformación. –

+0

@ fatcat1111: si no desea codificar el '' s en su código XSLT, entonces esta es la única forma de depurar y pasar los parámetros. De lo contrario, puede codificar los parámetros: ' ' –

+0

¡Muchas gracias! –

Cuestiones relacionadas