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 | |
---|---|---|
RequiresProvidesDirectiveProcessor | Initialisiert beim Überschreiben in einer abgeleiteten Klasse eine neue Instanz der RequiresProvidesDirectiveProcessor-Klasse. |
Zum Seitenanfang
Eigenschaften
Name | Beschreibung | |
---|---|---|
Errors | Ruft die Fehler ab, die beim Verarbeiten von Direktiven aufgetreten sind. (Von DirectiveProcessor geerbt.) | |
FriendlyName | Ruft beim Überschreiben in einer abgeleiteten Klasse den Anzeigenamen des Direktivenprozessors ab. | |
Host | Ruft den Host ab, der diesem Direktivenprozessor zugeordnet ist. |
Zum Seitenanfang
Methoden
Name | Beschreibung | |
---|---|---|
Equals | Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.) | |
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.) | |
FinishProcessingRun | Beendet eine Reihe von Direktivenverarbeitungen. (Überschreibt DirectiveProcessor.FinishProcessingRun().) | |
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. | |
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. | |
GenerateTransformCode | Fügt beim Überschreiben in einer abgeleiteten Klasse der generierten Transformationsklasse Code hinzu. | |
GetClassCodeForProcessingRun | Ruft Code ab, der zur generierten Transformationsklasse hinzugefügt werden soll. (Überschreibt DirectiveProcessor.GetClassCodeForProcessingRun().) | |
GetHashCode | Fungiert als Hashfunktion für einen besonderen Typ. (Von Object geerbt.) | |
GetImportsForProcessingRun | Ruft Namespaces ab, die in die generierte Transformationsklasse importiert werden sollen. (Überschreibt DirectiveProcessor.GetImportsForProcessingRun().) | |
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().) | |
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().) | |
GetReferencesForProcessingRun | Ruft Verweise ab, die an den Compiler der generierten Transformationsklasse übergeben werden sollen. (Überschreibt DirectiveProcessor.GetReferencesForProcessingRun().) | |
GetType | Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.) | |
Initialize | Initialisiert eine neue Instanz des Direktivenprozessors. (Überschreibt DirectiveProcessor.Initialize(ITextTemplatingEngineHost).) | |
InitializeProvidesDictionary | Gibt beim Überschreiben in einer abgeleiteten Klasse die provides-Parameter für die einzelnen Direktiven an. | |
InitializeRequiresDictionary | Gibt beim Überschreiben in einer abgeleiteten Klasse die requires-Parameter für die einzelnen Direktiven an. | |
IsDirectiveSupported | Bestimmt beim Überschreiben in einer abgeleiteten Klasse, ob der Direktivenprozessor die angegebene Direktive unterstützt. (Von DirectiveProcessor geerbt.) | |
MemberwiseClone | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) | |
PostProcessArguments | Ermöglicht abgeleiteten Klassen beim Überschreiben in einer abgeleiteten Klasse beliebige Änderungen an den Parametern vorzunehmen, die bereitgestellt werden und erforderlich sind. | |
ProcessDirective | Verarbeitet eine einzelne Direktive aus einer Textvorlagendatei. (Überschreibt DirectiveProcessor.ProcessDirective(String, IDictionary<String, String>).) | |
ProvideUniqueId | Stellt eine ID bereit, die einen Aufruf des Direktivenprozessors identifiziert. | |
StartProcessingRun | Startet einen Direktivenprozessor. (Überschreibt DirectiveProcessor.StartProcessingRun(CodeDomProvider, String, CompilerErrorCollection).) | |
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:
StartProcessingRun(CodeDomProvider)
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
Weitere Ressourcen
Erstellen von benutzerdefinierten Direktivenprozessoren für Textvorlagen