Freigeben über


RequiresProvidesDirectiveProcessor.GeneratePreInitializationCode-Methode

Fügt beim Überschreiben in einer abgeleiteten Klasse dem Initialisierungscode der generierten Transformationsklasse Code hinzu.Dieser Code wird hinzugefügt, bevor die Basisklasse initialisiert wurde.

Namespace:  Microsoft.VisualStudio.TextTemplating
Assembly:  Microsoft.VisualStudio.TextTemplating.11.0 (in Microsoft.VisualStudio.TextTemplating.11.0.dll)

Syntax

'Declaration
Protected MustOverride Sub GeneratePreInitializationCode ( _
    directiveName As String, _
    codeBuffer As StringBuilder, _
    languageProvider As CodeDomProvider, _
    requiresArguments As IDictionary(Of String, String), _
    providesArguments As IDictionary(Of String, String) _
)
protected abstract void GeneratePreInitializationCode(
    string directiveName,
    StringBuilder codeBuffer,
    CodeDomProvider languageProvider,
    IDictionary<string, string> requiresArguments,
    IDictionary<string, string> providesArguments
)
protected:
virtual void GeneratePreInitializationCode(
    String^ directiveName, 
    StringBuilder^ codeBuffer, 
    CodeDomProvider^ languageProvider, 
    IDictionary<String^, String^>^ requiresArguments, 
    IDictionary<String^, String^>^ providesArguments
) abstract
abstract GeneratePreInitializationCode : 
        directiveName:string * 
        codeBuffer:StringBuilder * 
        languageProvider:CodeDomProvider * 
        requiresArguments:IDictionary<string, string> * 
        providesArguments:IDictionary<string, string> -> unit 
protected abstract function GeneratePreInitializationCode(
    directiveName : String, 
    codeBuffer : StringBuilder, 
    languageProvider : CodeDomProvider, 
    requiresArguments : IDictionary<String, String>, 
    providesArguments : IDictionary<String, String>
)

Parameter

  • codeBuffer
    Typ: System.Text.StringBuilder
    Der Puffer zur Verkettung des Codes, der von allen Direktivenprozessoren ausgeführt werden muss, bevor die Basisklasse im Rahmen einer Verarbeitungsausführung initialisiert wird.Jeder Code, den dieser Direktivenprozessor für diese Direktive ausführen muss, bevor die Basisklasse initialisiert wird, sollte an diesen Puffer angefügt werden.

Hinweise

Da GenerateTransformCode der generierten Transformationsklasse Methoden hinzufügen kann, ist zum aufrufen dieser Methoden häufig Initialisierungscode erforderlich.

Diese Methode wird einmal für jede Direktive aufgerufen, die dieser Prozessor verarbeitet.Daher können Sie den Code für jede Direktive an codeBuffer anfügen.GetPreInitializationCodeForProcessingRun gibt den Inhalt von codeBuffer zurück, nachdem alle Direktiven verarbeitet wurden.

Diese Methode wird von ProcessDirective aufgerufen.

Beispiele

In diesem Beispiel wird Code generiert, der ausgeführt wird, bevor die Basisklasse initialisiert wurde.Dieses Beispiel ist Teil eines umfangreicheren Beispiels für die RequiresProvidesDirectiveProcessor-Klasse.

protected override void GeneratePreInitializationCode(string directiveName, StringBuilder codeBuffer, System.CodeDom.Compiler.CodeDomProvider languageProvider, IDictionary<string, string> requiresArguments, IDictionary<string, string> providesArguments)
{
if (StringComparer.InvariantCultureIgnoreCase.Compare(directiveName, DomDirectiveTag) == 0)
{
// Add your code for the pre-initialize stage for this processor.
}
}

.NET Framework-Sicherheit

Siehe auch

Referenz

RequiresProvidesDirectiveProcessor Klasse

Microsoft.VisualStudio.TextTemplating-Namespace

GeneratePostInitializationCode

GenerateTransformCode

ProcessDirective

GetPreInitializationCodeForProcessingRun