RequiresProvidesDirectiveProcessor, classe
Classe de base abstraite pour un processeur de directive qui définit et implémente un modèle de design appelé requires/provides (requiert/fournit).
Hiérarchie d'héritage
Object
Microsoft.VisualStudio.TextTemplating.DirectiveProcessor
Microsoft.VisualStudio.TextTemplating.RequiresProvidesDirectiveProcessor
Espace de noms : Microsoft.VisualStudio.TextTemplating
Assembly : Microsoft.VisualStudio.TextTemplating.12.0 (dans Microsoft.VisualStudio.TextTemplating.12.0.dll)
Syntaxe
'Déclaration
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
Le type RequiresProvidesDirectiveProcessor expose les membres suivants.
Constructeurs
Nom | Description | |
---|---|---|
RequiresProvidesDirectiveProcessor | En cas de substitution dans une classe dérivée, initialise une nouvelle instance de la classe RequiresProvidesDirectiveProcessor. |
Début
Propriétés
Nom | Description | |
---|---|---|
Errors | Obtient les erreurs survenues lors du traitement des directives. (Hérité de DirectiveProcessor.) | |
FriendlyName | En cas de substitution dans une classe dérivée, prend le nom convivial du processeur de directive. | |
Host | Obtient l'hôte associé à ce processeur de directive. |
Début
Méthodes
Nom | Description | |
---|---|---|
Equals | Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.) | |
Finalize | Autorise un objet à tenter de libérer des ressources et à exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par une opération garbage collection. (Hérité de Object.) | |
FinishProcessingRun | Termine un cycle de traitement de directive. (Substitue DirectiveProcessor.FinishProcessingRun().) | |
GeneratePostInitializationCode | En cas de substitution dans une classe dérivée, ajoute du code au code d'initialisation de la classe de transformation générée.Ce code est ajouté après l'initialisation de la classe de base. | |
GeneratePreInitializationCode | En cas de substitution dans une classe dérivée, ajoute du code au code d'initialisation de la classe de transformation générée.Ce code est ajouté avant l'initialisation de la classe de base. | |
GenerateTransformCode | En cas de substitution dans une classe dérivée, ajoute du code à la classe de transformation générée. | |
GetClassCodeForProcessingRun | Obtient le code permettant d'ajouter la classe de transformation générée. (Substitue DirectiveProcessor.GetClassCodeForProcessingRun().) | |
GetHashCode | Sert de fonction de hachage par défaut. (Hérité de Object.) | |
GetImportsForProcessingRun | Obtient les espaces de noms à importer dans la classe de transformation générée. (Substitue DirectiveProcessor.GetImportsForProcessingRun().) | |
GetPostInitializationCodeForProcessingRun | Obtient le code à initialiser lorsque la classe de transformation générée est initialisée, consécutivement à la dernière exécution. (Substitue DirectiveProcessor.GetPostInitializationCodeForProcessingRun().) | |
GetPreInitializationCodeForProcessingRun | Obtient le code à initialiser lorsque la classe de transformation générée est initialisée, consécutivement à la dernière exécution. (Substitue DirectiveProcessor.GetPreInitializationCodeForProcessingRun().) | |
GetReferencesForProcessingRun | Obtient les références à passer au compilateur de la classe de transformation générée. (Substitue DirectiveProcessor.GetReferencesForProcessingRun().) | |
GetTemplateClassCustomAttributes | Obtenir tous les attributs personnalisés pour mettre sur la classe de modèle. (Hérité de DirectiveProcessor.) | |
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) | |
Initialize | Initialise une instance du processeur de directive. (Substitue DirectiveProcessor.Initialize(ITextTemplatingEngineHost).) | |
InitializeProvidesDictionary | En cas de substitution dans une classe dérivée, spécifie les paramètres provides (fournit) pour chaque directive. | |
InitializeRequiresDictionary | En cas de substitution dans une classe dérivée, spécifie les paramètres requires (requiert) pour chaque directive. | |
IsDirectiveSupported | Une fois substituée dans une classe dérivée, détermine si le processeur de directive prend en charge la directive spécifiée. (Hérité de DirectiveProcessor.) | |
MemberwiseClone | Crée une copie superficielle du Object actuel. (Hérité de Object.) | |
PostProcessArguments | En cas de substitution dans une classe dérivée, permet aux classes dérivées de modifier les paramètres qu'elles fournissent et dont elles ont besoin. | |
ProcessDirective | Traite une directive unique d'un fichier de modèle de texte. (Substitue DirectiveProcessor.ProcessDirective(String, IDictionary<String, String>).) | |
ProvideUniqueId | Fournit un ID qui identifie un appel au processeur de directive. | |
StartProcessingRun | Démarre un processeur de directive. (Substitue DirectiveProcessor.StartProcessingRun(CodeDomProvider, String, CompilerErrorCollection).) | |
ToString | Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.) |
Début
Implémentations d'interface explicite
Nom | Description | |
---|---|---|
IDirectiveProcessor.Errors | (Hérité de DirectiveProcessor.) | |
IDirectiveProcessor.RequiresProcessingRunIsHostSpecific | (Hérité de DirectiveProcessor.) | |
IDirectiveProcessor.SetProcessingRunIsHostSpecific | (Hérité de DirectiveProcessor.) |
Début
Notes
Pour créer un processeur de directive personnalisé, vous devez définir une classe qui hérite de DirectiveProcessor ou de RequiresProvidesDirectiveProcessor.
DirectiveProcessor implémente l'interface qui est requise pour capturer des paramètres de l'utilisateur et fournit les fonctionnalités pour la classe de transformation générée. RequiresProvidesDirectiveProcessorRequiresProvidesDirectiveProcessor implémente le modèle de conception, requires/provides, pour votre processeur de directive. RequiresProvidesDirectiveProcessor fournit des fonctionnalités supplémentaires pour capturer des paramètres de l'utilisateur et fournit des fonctionnalités à la classe de transformation générée avec des noms de propriété spécifiques.
Pour plus d'informations, consultez Création de processeurs de directives de modèles de texte T4 personnalisés.
Le moteur de transformation contient un singleton pour toutes les classes RequiresProvidesDirectiveProcessor obligatoires.
RequiresProvidesDirectiveProcessor implémente une machine à états.
Par exemple, si un modèle de texte a trois appels de directive au même processeur de directives, le moteur appelle les méthodes suivantes dans l'ordre :
StartProcessingRun
Exemples
L'exemple suivant montre comment utiliser le RequiresProvidesDirectiveProcessor.
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;
}
}
}
}
Sécurité des threads
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Voir aussi
Référence
Microsoft.VisualStudio.TextTemplating, espace de noms
Autres ressources
Création de processeurs de directives de modèles de texte T4 personnalisés