Partager via


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

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

Espace de noms :  Microsoft.VisualStudio.TextTemplating
Assembly :  Microsoft.VisualStudio.TextTemplating.11.0 (dans Microsoft.VisualStudio.TextTemplating.11.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
Méthode protégée 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
Propriété protégée Errors Obtient les erreurs survenues lors de le traitement des directives. (Hérité de DirectiveProcessor.)
Propriété protégée FriendlyName En cas de substitution dans une classe dérivée, prend le nom convivial du processeur de directive.
Propriété protégée Host Obtient l'hôte associé à ce processeur de directive.

Début

Méthodes

  Nom Description
Méthode publique Equals Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.)
Méthode protégée Finalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publique FinishProcessingRun Termine un cycle de traitement de directive. (Substitue DirectiveProcessor.FinishProcessingRun().)
Méthode protégée 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.
Méthode protégée 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.
Méthode protégée GenerateTransformCode En cas de substitution dans une classe dérivée, ajoute du code à la classe de transformation générée.
Méthode publique GetClassCodeForProcessingRun Obtient le code permettant d'ajouter la classe de transformation générée. (Substitue DirectiveProcessor.GetClassCodeForProcessingRun().)
Méthode publique GetHashCode Sert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publique GetImportsForProcessingRun Obtient les espaces de noms à importer dans la classe de transformation générée. (Substitue DirectiveProcessor.GetImportsForProcessingRun().)
Méthode publique 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().)
Méthode publique 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().)
Méthode publique GetReferencesForProcessingRun Obtient les références à passer au compilateur de la classe de transformation générée. (Substitue DirectiveProcessor.GetReferencesForProcessingRun().)
Méthode publique GetTemplateClassCustomAttributes Obtient tous les attributs personnalisés pour mettre en fonction de la classe de modèle. (Hérité de DirectiveProcessor.)
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publique Initialize Initialise une instance du processeur de directive. (Substitue DirectiveProcessor.Initialize(ITextTemplatingEngineHost).)
Méthode protégée InitializeProvidesDictionary En cas de substitution dans une classe dérivée, spécifie les paramètres provides (fournit) pour chaque directive.
Méthode protégée InitializeRequiresDictionary En cas de substitution dans une classe dérivée, spécifie les paramètres requires (requiert) pour chaque directive.
Méthode publique 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.)
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode protégée 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.
Méthode publique ProcessDirective Traite une directive unique d'un fichier de modèle de texte. (Substitue DirectiveProcessor.ProcessDirective(String, IDictionary<String, String>).)
Méthode protégée ProvideUniqueId Fournit un ID qui identifie un appel au processeur de directive.
Méthode publique StartProcessingRun Démarre un processeur de directive. (Substitue DirectiveProcessor.StartProcessingRun(CodeDomProvider, String, CompilerErrorCollection).)
Méthode publique ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)

Début

Implémentations d'interface explicite

  Nom Description
Implémentation d'interface explicitePropriété privée IDirectiveProcessor.Errors (Hérité de DirectiveProcessor.)
Implémentation d'interface explicitePropriété privée IDirectiveProcessor.RequiresProcessingRunIsHostSpecific (Hérité de DirectiveProcessor.)
Implémentation d'interface expliciteMéthode privée 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 :

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

DirectiveProcessor

Autres ressources

Création de processeurs de directives de modèles de texte T4 personnalisés