Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo XslCompiledTransform.Load (MethodInfo, Byte[], Type[])

 

Data di pubblicazione: ottobre 2016

Carica un metodo da un foglio di stile compilato utilizzando il XSLTC.exe utilità.

Spazio dei nomi:   System.Xml.Xsl
Assembly:  System.Xml (in System.Xml.dll)

public void Load(
	MethodInfo executeMethod,
	byte[] queryData,
	Type[] earlyBoundTypes
)

Parametri

executeMethod
Type: System.Reflection.MethodInfo

Oggetto MethodInfo oggetto che rappresenta il generato dal compilatore execute metodo del foglio di stile compilato.

queryData
Type: System.Byte[]

Strutture di una matrice di byte di dati serializzati nel staticData campo del foglio di stile compilato generato mediante la CompileToType metodo.

earlyBoundTypes
Type: System.Type[]

Matrice di tipi memorizzata nel generato dal compilatore ebTypes campo del foglio di stile compilato.

Questo metodo accetta un foglio di stile compilato sotto forma di un MethodInfo oggetto, una matrice di byte e una matrice di tipo. DynamicMethod gli oggetti possono essere utilizzati per consentire di metodi del foglio di stile compilato eliminate quando il XslCompiledTransform oggetto venga recuperato.

Nell'esempio di codice seguente viene utilizzato il Load per caricare un foglio di stile compilato. La trasformazione riduce il valore di Price elemento dieci percento.

using System;
using System.IO;
using System.Reflection;
using System.Xml;
using System.Xml.Xsl;

class Example
{
    static void Main()
    {
        // Load a stylesheet compiled using the XSLTC.EXE utility
        Type compiledStylesheet = Assembly.Load("Transform").GetType("Transform");

        // Extract private members from the compiled stylesheet
        BindingFlags bindingFlags = BindingFlags.NonPublic | BindingFlags.Static;
        MethodInfo executeMethod = compiledStylesheet.GetMethod("Execute", bindingFlags);
        object staticData = compiledStylesheet.GetField("staticData", bindingFlags).GetValue(null);
        object earlyBoundTypes = compiledStylesheet.GetField("ebTypes", bindingFlags).GetValue(null);

        // Load into XslCompiledTransform
        XslCompiledTransform xslt = new XslCompiledTransform();
        xslt.Load(executeMethod, (byte[])staticData, (Type[])earlyBoundTypes);

        // Run the transformation
        xslt.Transform(XmlReader.Create(new StringReader("<Root><Price>9.50</Price></Root>")), (XsltArgumentList)null, Console.Out);
    }
}
System_CAPS_noteNota

L'assembly "Trasformazione" utilizzato in questo esempio è stato creato utilizzando l'utilità xsltc.exe. Per informazioni dettagliate sull'utilizzo di questo strumento da riga di comando, vedere Procedura: eseguire una trasformazione XSLT utilizzando un assembly.

Nell'esempio di codice viene utilizzata la trasformazione seguente:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:msxsl="urn:schemas-microsoft-com:xslt"
  xmlns:user="urn:my-scripts">
  <msxsl:script language="C#" implements-prefix="user">
    <![CDATA[
  public double modifyPrice(double price){
    price*=0.9;
    return price;
  }
  ]]>
  </msxsl:script>
  <xsl:template match="Root">
    <Root>
      <Price><xsl:value-of select="user:modifyPrice(Price)"/></Price>
    </Root>
  </xsl:template>
</xsl:stylesheet>

.NET Framework
Disponibile da 2.0
Torna all'inizio
Mostra: