Udostępnij za pośrednictwem


Metoda RequiresProvidesDirectiveProcessor.GeneratePreInitializationCode —

Po zastąpieniu w klasie pochodnej, dodaje kod do kodu inicjowania klasy wygenerowany transformacji.Ten kod jest dodawane przed zainicjowaniem klasy podstawowej.

Przestrzeń nazw:  Microsoft.VisualStudio.TextTemplating
Zestaw:  Microsoft.VisualStudio.TextTemplating.12.0 (w Microsoft.VisualStudio.TextTemplating.12.0.dll)

Składnia

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

Parametry

  • directiveName
    Typ: String

    Nazwa dyrektywy.

  • codeBuffer
    Typ: StringBuilder

    Bufor, który łączy kod, który wszystkie procesory w dyrektywie należy uruchomić przed klasy podstawowej jest inicjowany podczas przetwarzania, uruchom.Wszelki kod, który należy uruchomić tego procesora w dyrektywie do celów niniejszej dyrektywy, przed zainicjowaniem klasy podstawowej powinna zostać dołączona do tego buforu.

  • languageProvider
    Typ: CodeDomProvider

    Generator kodu, który tworzy kod, aby dodać do codebuffer.

  • requiresArguments
    Typ: IDictionary<String, String>

    Standardowe parametry, których wymaga procesor dyrektywy.

  • providesArguments
    Typ: IDictionary<String, String>

    Standardowe parametry, które zapewnia procesor dyrektywy.

Uwagi

Ponieważ GenerateTransformCode można dodawać metody do klasy transformacji wygenerowany kod inicjujący często jest niezbędny do wywoływania jednej z tych metod.

Ta metoda jest wywoływana raz dla każdej dyrektywy, która przetwarza tego procesora.W związku z tym, można dołączyć kod dla każdej dyrektywy do codeBuffer.GetPreInitializationCodeForProcessingRunZwraca zawartość codeBuffer po przetworzeniu wszystkich dyrektyw.

Metoda ta jest wywoływana przez ProcessDirective.

Przykłady

W tym przykładzie generuje kod, który jest uruchamiany przed zainicjowaniem klasy podstawowej.W tym przykładzie jest częścią większej przykład dla RequiresProvidesDirectiveProcessor klasy.

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

Zabezpieczenia programu .NET Framework

Zobacz też

Informacje

RequiresProvidesDirectiveProcessor Klasa

Przestrzeń nazw Microsoft.VisualStudio.TextTemplating

GeneratePostInitializationCode

GenerateTransformCode

ProcessDirective

GetPreInitializationCodeForProcessingRun