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
- directiveName
Typ: System.String
Der Name der Direktive.
- 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.
- languageProvider
Typ: System.CodeDom.Compiler.CodeDomProvider
Der Code-Generator, der den Code erzeugt, der codebuffer hinzugefügt werden soll.
- requiresArguments
Typ: System.Collections.Generic.IDictionary<String, String>
Die Standardparameter, die vom Direktivenprozessor gefordert werden.
- providesArguments
Typ: System.Collections.Generic.IDictionary<String, String>
Die Standardparameter, die vom Direktivenprozessor bereitgestellt 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
- Volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer. Dieser Member kann von nur teilweise vertrauenswürdigem Code nicht verwendet werden. Weitere Informationen finden Sie unter Verwenden von Bibliotheken aus teilweise vertrauenswürdigem Code.
Siehe auch
Referenz
RequiresProvidesDirectiveProcessor Klasse
Microsoft.VisualStudio.TextTemplating-Namespace