Condividi tramite


Metodo RequiresProvidesDirectiveProcessor.GeneratePreInitializationCode

Una volta sottoposto a override in una classe derivata, aggiungere codice al codice di inizializzazione della classe della trasformazione generata.Questo codice viene aggiunto prima della classe base venga inizializzata.

Spazio dei nomi:  Microsoft.VisualStudio.TextTemplating
Assembly:  Microsoft.VisualStudio.TextTemplating.11.0 (in Microsoft.VisualStudio.TextTemplating.11.0.dll)

Sintassi

'Dichiarazione
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>
)

Parametri

  • codeBuffer
    Tipo: System.Text.StringBuilder
    Il buffer che concatena il codice che tutti i processori di direttiva devono eseguire prima della classe base venga inizializzata durante l'esecuzione di elaborazione.Tutto il codice che questo processore di direttiva deve eseguire per questa direttiva prima della classe base venga inizializzata deve essere concatenatoe a questo buffer.

Note

Poiché GenerateTransformCode possibile aggiungere metodi alla classe della trasformazione generata, il codice di inizializzazione è spesso necessario chiamare tali metodi.

Questo metodo viene chiamato una volta per ogni direttiva che questo processore elabora.Di conseguenza, è possibile aggiungere il codice per ciascuna direttiva su codeBuffer.GetPreInitializationCodeForProcessingRun restituisce il contenuto di codeBuffer dopo tutte le direttive sono state elaborate.

Questo metodo viene chiamato da l ProcessDirective.

Esempi

In questo esempio viene generato il codice che viene eseguito prima che la classe base venga inizializzata.Questo esempio fa parte di un esempio più esaustivo per RequiresProvidesDirectiveProcessor classe.

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.
}
}

Sicurezza di .NET Framework

Vedere anche

Riferimenti

RequiresProvidesDirectiveProcessor Classe

Spazio dei nomi Microsoft.VisualStudio.TextTemplating

GeneratePostInitializationCode

GenerateTransformCode

ProcessDirective

GetPreInitializationCodeForProcessingRun