Condividi tramite


Classe RequiresProvidesDirectiveProcessor

La classe di base astratta per un processore di direttiva che definisce i metodi che un modello di progettazione denominato richiede/forniti in.

Gerarchia di ereditarietà

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

Spazio dei nomi:  Microsoft.VisualStudio.TextTemplating
Assembly:  Microsoft.VisualStudio.TextTemplating.11.0 (in Microsoft.VisualStudio.TextTemplating.11.0.dll)

Sintassi

'Dichiarazione
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

Il tipo RequiresProvidesDirectiveProcessor espone i seguenti membri.

Costruttori

  Nome Descrizione
Metodo protetto RequiresProvidesDirectiveProcessor Una volta sottoposto a override in una classe derivata, inizializza una nuova istanza di RequiresProvidesDirectiveProcessor classe.

In alto

Proprietà

  Nome Descrizione
Proprietà protetta. Errors Ottiene gli errori che si sono verificati durante l'elaborazione delle direttive. (Ereditato da DirectiveProcessor)
Proprietà protetta. FriendlyName Una volta sottoposto a override in una classe derivata, ottiene il nome descrittivo del processore di direttiva.
Proprietà protetta. Host Ottiene l'host associato a questo processore di direttiva.

In alto

Metodi

  Nome Descrizione
Metodo pubblico Equals Determina se l'oggetto specificato equivale all'oggetto corrente. (Ereditato da Object)
Metodo protetto Finalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo pubblico FinishProcessingRun Completa un round di elaborazione direttiva. (Esegue l'override di DirectiveProcessor.FinishProcessingRun()).
Metodo protetto GeneratePostInitializationCode Una volta sottoposto a override in una classe derivata, aggiungere codice al codice di inizializzazione per la classe della trasformazione generata.Questo codice viene aggiunto al termine della classe base viene inizializzata.
Metodo protetto GeneratePreInitializationCode Una volta sottoposto a override in una classe derivata, aggiungere codice al codice di inizializzazione della classe della trasformazione generata.Questo codice viene aggiunto prima della classe base venga inizializzata.
Metodo protetto GenerateTransformCode Una volta sottoposto a override in una classe derivata, aggiungere il codice alla classe della trasformazione generata.
Metodo pubblico GetClassCodeForProcessingRun Ottiene il codice da aggiungere alla classe della trasformazione generata. (Esegue l'override di DirectiveProcessor.GetClassCodeForProcessingRun()).
Metodo pubblico GetHashCode Funge da funzione hash per un determinato tipo. (Ereditato da Object)
Metodo pubblico GetImportsForProcessingRun Ottiene gli spazi dei nomi da importare nella classe della trasformazione generata. (Esegue l'override di DirectiveProcessor.GetImportsForProcessingRun()).
Metodo pubblico GetPostInitializationCodeForProcessingRun Ottiene il codice per inizializzare quando la classe della trasformazione generata viene inizializzata, in conseguenza dell'esecuzione di elaborazione più recente. (Esegue l'override di DirectiveProcessor.GetPostInitializationCodeForProcessingRun()).
Metodo pubblico GetPreInitializationCodeForProcessingRun Ottiene il codice per inizializzare quando la classe della trasformazione generata viene inizializzata, in conseguenza dell'esecuzione di elaborazione più recente. (Esegue l'override di DirectiveProcessor.GetPreInitializationCodeForProcessingRun()).
Metodo pubblico GetReferencesForProcessingRun Ottiene i riferimenti per passare al compilatore della classe della trasformazione generata. (Esegue l'override di DirectiveProcessor.GetReferencesForProcessingRun()).
Metodo pubblico GetTemplateClassCustomAttributes Ottenere tutti gli attributi personalizzati per inserire nella classe modello. (Ereditato da DirectiveProcessor)
Metodo pubblico GetType Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblico Initialize Inizializza un'istanza del processore di direttiva. (Esegue l'override di DirectiveProcessor.Initialize(ITextTemplatingEngineHost)).
Metodo protetto InitializeProvidesDictionary Una volta sottoposto a override in una classe derivata, specifica fornisce parametri per ciascuna direttiva.
Metodo protetto InitializeRequiresDictionary Una volta sottoposto a override in una classe derivata, specifica richiede parametri per ciascuna direttiva.
Metodo pubblico IsDirectiveSupported Una volta eseguito in una classe derivata, determina se il processore di direttiva supporta la direttiva specificata. (Ereditato da DirectiveProcessor)
Metodo protetto MemberwiseClone Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo protetto PostProcessArguments Una volta sottoposto a override in una classe derivata, consente alle classi derivate apportino tutte le modifiche ai parametri che forniscono e richiedono.
Metodo pubblico ProcessDirective L'elaborazione di una singola direttiva da un file modello di testo. (Esegue l'override di DirectiveProcessor.ProcessDirective(String, IDictionary<String, String>)).
Metodo protetto ProvideUniqueId Fornisce un ID che identifica una chiamata al processore di direttiva.
Metodo pubblico StartProcessingRun Viene avviato un processore di direttiva. (Esegue l'override di DirectiveProcessor.StartProcessingRun(CodeDomProvider, String, CompilerErrorCollection)).
Metodo pubblico ToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)

In alto

Implementazioni esplicite dell'interfaccia

  Nome Descrizione
Implementazione esplicita dell'interfacciaProprietà privata IDirectiveProcessor.Errors (Ereditato da DirectiveProcessor)
Implementazione esplicita dell'interfacciaProprietà privata IDirectiveProcessor.RequiresProcessingRunIsHostSpecific (Ereditato da DirectiveProcessor)
Implementazione esplicita dell'interfacciaMetodo privato IDirectiveProcessor.SetProcessingRunIsHostSpecific (Ereditato da DirectiveProcessor)

In alto

Note

Per creare un processore di direttiva personalizzato, si crea una classe che eredita dall'una o l'altra DirectiveProcessor o RequiresProvidesDirectiveProcessor.

DirectiveProcessor implementa l'interfaccia che è obbligatoria acquisire i parametri dall'utente e fornisce funzionalità per la classe della trasformazione generata.RequiresProvidesDirectiveProcessorRequiresProvidesDirectiveProcessor applica il modello di progettazione, richiede/fornisconooggetti, per il processore di direttiva.RequiresProvidesDirectiveProcessor fornisce funzionalità aggiuntive ai parametri di acquisizione dall'utente e fornisce funzionalità alla classe della trasformazione generata dai nomi di proprietà specifici.

Per ulteriori informazioni, vedere Creazione di processori di direttiva di modelli di testo T4 personalizzati.

Il motore di trasformazione utilizza un valore singleton per qualsiasi obbligatorio RequiresProvidesDirectiveProcessor classe.

RequiresProvidesDirectiveProcessor implementa una macchina a stati.

Ad esempio, se un modello di testo contiene tre chiamate alla direttiva allo stesso processore di direttiva, il motore chiama i metodi seguenti nell'ordine:

Esempi

Nell'esempio seguente viene illustrato come utilizzare 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;
}
}
}
}

Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Vedere anche

Riferimenti

Spazio dei nomi Microsoft.VisualStudio.TextTemplating

DirectiveProcessor

Altre risorse

Creazione di processori di direttiva di modelli di testo T4 personalizzati