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 | |
---|---|---|
RequiresProvidesDirectiveProcessor | Una volta sottoposto a override in una classe derivata, inizializza una nuova istanza di RequiresProvidesDirectiveProcessor classe. |
In alto
Proprietà
Nome | Descrizione | |
---|---|---|
Errors | Ottiene gli errori che si sono verificati durante l'elaborazione delle direttive. (Ereditato da DirectiveProcessor) | |
FriendlyName | Una volta sottoposto a override in una classe derivata, ottiene il nome descrittivo del processore di direttiva. | |
Host | Ottiene l'host associato a questo processore di direttiva. |
In alto
Metodi
Nome | Descrizione | |
---|---|---|
Equals | Determina se l'oggetto specificato equivale all'oggetto corrente. (Ereditato da Object) | |
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) | |
FinishProcessingRun | Completa un round di elaborazione direttiva. (Esegue l'override di DirectiveProcessor.FinishProcessingRun()). | |
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. | |
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. | |
GenerateTransformCode | Una volta sottoposto a override in una classe derivata, aggiungere il codice alla classe della trasformazione generata. | |
GetClassCodeForProcessingRun | Ottiene il codice da aggiungere alla classe della trasformazione generata. (Esegue l'override di DirectiveProcessor.GetClassCodeForProcessingRun()). | |
GetHashCode | Funge da funzione hash per un determinato tipo. (Ereditato da Object) | |
GetImportsForProcessingRun | Ottiene gli spazi dei nomi da importare nella classe della trasformazione generata. (Esegue l'override di DirectiveProcessor.GetImportsForProcessingRun()). | |
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()). | |
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()). | |
GetReferencesForProcessingRun | Ottiene i riferimenti per passare al compilatore della classe della trasformazione generata. (Esegue l'override di DirectiveProcessor.GetReferencesForProcessingRun()). | |
GetTemplateClassCustomAttributes | Ottenere tutti gli attributi personalizzati per inserire nella classe modello. (Ereditato da DirectiveProcessor) | |
GetType | Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) | |
Initialize | Inizializza un'istanza del processore di direttiva. (Esegue l'override di DirectiveProcessor.Initialize(ITextTemplatingEngineHost)). | |
InitializeProvidesDictionary | Una volta sottoposto a override in una classe derivata, specifica fornisce parametri per ciascuna direttiva. | |
InitializeRequiresDictionary | Una volta sottoposto a override in una classe derivata, specifica richiede parametri per ciascuna direttiva. | |
IsDirectiveSupported | Una volta eseguito in una classe derivata, determina se il processore di direttiva supporta la direttiva specificata. (Ereditato da DirectiveProcessor) | |
MemberwiseClone | Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object) | |
PostProcessArguments | Una volta sottoposto a override in una classe derivata, consente alle classi derivate apportino tutte le modifiche ai parametri che forniscono e richiedono. | |
ProcessDirective | L'elaborazione di una singola direttiva da un file modello di testo. (Esegue l'override di DirectiveProcessor.ProcessDirective(String, IDictionary<String, String>)). | |
ProvideUniqueId | Fornisce un ID che identifica una chiamata al processore di direttiva. | |
StartProcessingRun | Viene avviato un processore di direttiva. (Esegue l'override di DirectiveProcessor.StartProcessingRun(CodeDomProvider, String, CompilerErrorCollection)). | |
ToString | Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
In alto
Implementazioni esplicite dell'interfaccia
Nome | Descrizione | |
---|---|---|
IDirectiveProcessor.Errors | (Ereditato da DirectiveProcessor) | |
IDirectiveProcessor.RequiresProcessingRunIsHostSpecific | (Ereditato da DirectiveProcessor) | |
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:
StartProcessingRun
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
Altre risorse
Creazione di processori di direttiva di modelli di testo T4 personalizzati