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.11.0 (in Microsoft.VisualStudio.TextTemplating.11.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 Fehlermeldung, die aufgetreten sind, als, Direktiven werden. (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 Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.) | |
Finalize | Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der 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 bestimmten 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().) | |
GetTemplateClassCustomAttributes | Rufen Sie alle benutzerdefinierten Attribute ab, um die Vorlagenklasse an zu setzen. (Von DirectiveProcessor geerbt.) | |
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 | Wenn Sie in einer abgeleiteten Klasse überschrieben werden, bestimmt, ob der Direktivenprozessor die angegebenen 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
Explizite Schnittstellenimplementierungen
Name | Beschreibung | |
---|---|---|
IDirectiveProcessor.Errors | (Von DirectiveProcessor geerbt.) | |
IDirectiveProcessor.RequiresProcessingRunIsHostSpecific | (Von DirectiveProcessor geerbt.) | |
IDirectiveProcessor.SetProcessingRunIsHostSpecific | (Von DirectiveProcessor 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.RequiresProvidesDirectiveProcessorRequiresProvidesDirectiveProcessor 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 T4-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
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 T4-Direktivenprozessoren für Textvorlagen