Freigeben über


RequiresProvidesDirectiveProcessor-Klasse

Die abstrakte Basisklasse für einen Direktivenprozessor, der das Entwurfsmuster zum Erfordern/Bereitstellen definiert und implementiert.

Vererbungshierarchie

System.Object
  Microsoft.VisualStudio.TextTemplating.DirectiveProcessor
    Microsoft.VisualStudio.TextTemplating.RequiresProvidesDirectiveProcessor

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

Syntax

'Declaration
Public MustInherit Class RequiresProvidesDirectiveProcessor _
    Inherits DirectiveProcessor
public abstract class RequiresProvidesDirectiveProcessor : DirectiveProcessor
public ref class RequiresProvidesDirectiveProcessor abstract : public DirectiveProcessor
[<AbstractClass>]
type RequiresProvidesDirectiveProcessor =  
    class
        inherit DirectiveProcessor
    end
public abstract class RequiresProvidesDirectiveProcessor extends DirectiveProcessor

Der RequiresProvidesDirectiveProcessor-Typ macht die folgenden Member verfügbar.

Konstruktoren

  Name Beschreibung
Geschützte Methode RequiresProvidesDirectiveProcessor Initialisiert beim Überschreiben in einer abgeleiteten Klasse eine neue Instanz der RequiresProvidesDirectiveProcessor-Klasse.

Zum Seitenanfang

Eigenschaften

  Name Beschreibung
Geschützte Eigenschaft Errors Ruft die Fehler ab, die beim Verarbeiten von Direktiven aufgetreten sind. (Von DirectiveProcessor geerbt.)
Geschützte Eigenschaft FriendlyName Ruft beim Überschreiben in einer abgeleiteten Klasse den Anzeigenamen des Direktivenprozessors ab.
Geschützte Eigenschaft Host Ruft den Host ab, der diesem Direktivenprozessor zugeordnet ist.

Zum Seitenanfang

Methoden

  Name Beschreibung
Öffentliche Methode Equals Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.)
Geschützte Methode Finalize Ermöglicht es einem Objekt, zu versuchen, Ressourcen freizugeben und führt andere Bereinigungsvorgänge aus, bevor es von Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche Methode FinishProcessingRun Beendet eine Reihe von Direktivenverarbeitungen. (Überschreibt DirectiveProcessor.FinishProcessingRun().)
Geschützte Methode GeneratePostInitializationCode Fügt beim Überschreiben in einer abgeleiteten Klasse dem Initialisierungscode für die generierte Transformationsklasse Code hinzu.Dieser Code wird hinzugefügt, nachdem die Basisklasse initialisiert wurde.
Geschützte Methode GeneratePreInitializationCode 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.
Geschützte Methode GenerateTransformCode Fügt beim Überschreiben in einer abgeleiteten Klasse der generierten Transformationsklasse Code hinzu.
Öffentliche Methode GetClassCodeForProcessingRun Ruft Code ab, der zur generierten Transformationsklasse hinzugefügt werden soll. (Überschreibt DirectiveProcessor.GetClassCodeForProcessingRun().)
Öffentliche Methode GetHashCode Fungiert als Hashfunktion für einen besonderen Typ. (Von Object geerbt.)
Öffentliche Methode GetImportsForProcessingRun Ruft Namespaces ab, die in die generierte Transformationsklasse importiert werden sollen. (Überschreibt DirectiveProcessor.GetImportsForProcessingRun().)
Öffentliche Methode GetPostInitializationCodeForProcessingRun Ruft Code ab, der initialisiert werden soll, wenn die generierte Transformationsklasse in Abhängigkeit von der letzten Verarbeitungsausführung initialisiert wird. (Überschreibt DirectiveProcessor.GetPostInitializationCodeForProcessingRun().)
Öffentliche Methode GetPreInitializationCodeForProcessingRun Ruft Code ab, der initialisiert werden soll, wenn die generierte Transformationsklasse in Abhängigkeit von der letzten Verarbeitungsausführung initialisiert wird. (Überschreibt DirectiveProcessor.GetPreInitializationCodeForProcessingRun().)
Öffentliche Methode GetReferencesForProcessingRun Ruft Verweise ab, die an den Compiler der generierten Transformationsklasse übergeben werden sollen. (Überschreibt DirectiveProcessor.GetReferencesForProcessingRun().)
Öffentliche Methode GetType Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche Methode Initialize Initialisiert eine neue Instanz des Direktivenprozessors. (Überschreibt DirectiveProcessor.Initialize(ITextTemplatingEngineHost).)
Geschützte Methode InitializeProvidesDictionary Gibt beim Überschreiben in einer abgeleiteten Klasse die provides-Parameter für die einzelnen Direktiven an.
Geschützte Methode InitializeRequiresDictionary Gibt beim Überschreiben in einer abgeleiteten Klasse die requires-Parameter für die einzelnen Direktiven an.
Öffentliche Methode IsDirectiveSupported Bestimmt beim Überschreiben in einer abgeleiteten Klasse, ob der Direktivenprozessor die angegebene Direktive unterstützt. (Von DirectiveProcessor geerbt.)
Geschützte Methode MemberwiseClone Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Geschützte Methode PostProcessArguments Ermöglicht abgeleiteten Klassen beim Überschreiben in einer abgeleiteten Klasse beliebige Änderungen an den Parametern vorzunehmen, die bereitgestellt werden und erforderlich sind.
Öffentliche Methode ProcessDirective Verarbeitet eine einzelne Direktive aus einer Textvorlagendatei. (Überschreibt DirectiveProcessor.ProcessDirective(String, IDictionary<String, String>).)
Geschützte Methode ProvideUniqueId Stellt eine ID bereit, die einen Aufruf des Direktivenprozessors identifiziert.
Öffentliche Methode StartProcessingRun Startet einen Direktivenprozessor. (Überschreibt DirectiveProcessor.StartProcessingRun(CodeDomProvider, String, CompilerErrorCollection).)
Öffentliche Methode ToString Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)

Zum Seitenanfang

Hinweise

Zum Erstellen eines benutzerdefinierten Direktivenprozessors erstellen Sie eine Klasse, die von DirectiveProcessor oder RequiresProvidesDirectiveProcessor erbt.

DirectiveProcessor implementiert die Schnittstelle, die erforderlich ist, um Parameter im Benutzer zu erfassen, und stellt die Funktionalität für die generierte Transformationsklasse bereit. RequiresProvidesDirectiveProcessor RequiresProvidesDirectiveProcessor implementiert das Entwurfsmuster, requires/provides, für den Direktivenprozessor. RequiresProvidesDirectiveProcessor bietet weitere Möglichkeiten zum Erfassen von Parametern durch den Benutzer und stellt die Funktionalität für die generierte Transformationsklasse mit bestimmten Eigenschaftsnamen bereit.

Weitere Informationen finden Sie unter Erstellen von benutzerdefinierten Direktivenprozessoren für Textvorlagen.

Das Transformationsmodul nimmt einem Singleton für eine beliebige erforderliche RequiresProvidesDirectiveProcessor-Klasse auf.

RequiresProvidesDirectiveProcessor implementiert einen Zustandsautomaten.

Wenn eine Textvorlage z. B. drei Direktivenaufrufe zum gleichen Direktivenprozessor hat, ruft das Modul die folgenden Methoden in der folgenden Reihenfolge auf:

Beispiele

Im folgenden Beispiel wird die Verwendung des RequiresProvidesDirectiveProcessor-Elements veranschaulicht.

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.VisualStudio.TextTemplating;
using System.Xml;
using System.IO;
using System.Globalization;

namespace Microsoft.Samples.VisualStudio.TextTemplating.DirectiveProcessors
{
public class DomDirectiveProcessor : RequiresProvidesDirectiveProcessor
{

// Name of the tag that this directive processor supports.
private const string DomDirectiveTag = "dom";

//Name of the parameter that must be provided for this directive processor to load an XML file
private const string XmlFileRequiredParameterName = "XmlFile";

// Default name of the property that this provider adds to the generated transform class.
private const string DomProvidedParameterName = "Dom";

// Set up the dictionary of items that this directive processor will provide.
protected override void InitializeProvidesDictionary(string directiveName, IDictionary<string, string> providesDictionary)
{
if (StringComparer.InvariantCultureIgnoreCase.Compare(directiveName, DomDirectiveTag) == 0)
{
// Populate the dictionary with defualt names.
providesDictionary[DomProvidedParameterName] = DomProvidedParameterName;
}
}

// Set up the dictionary of items that this directive processor requires to complete.
protected override void InitializeRequiresDictionary(string directiveName, IDictionary<string, string> requiresDictionary)
{
if (StringComparer.InvariantCultureIgnoreCase.Compare(directiveName, DomDirectiveTag) == 0)
{
// Initialize the dictionary with nulls for each required parameter.
requiresDictionary[XmlFileRequiredParameterName] = null;
}
}
}
}

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Siehe auch

Referenz

Microsoft.VisualStudio.TextTemplating-Namespace

DirectiveProcessor

Weitere Ressourcen

Erstellen von benutzerdefinierten Direktivenprozessoren für Textvorlagen