RequiresProvidesDirectiveProcessor (Clase)
Clase base abstracta de un procesador de directivas que define e implementa un modelo de diseño denominado requiere/proporciona.
Jerarquía de herencia
Object
Microsoft.VisualStudio.TextTemplating.DirectiveProcessor
Microsoft.VisualStudio.TextTemplating.RequiresProvidesDirectiveProcessor
Espacio de nombres: Microsoft.VisualStudio.TextTemplating
Ensamblado: Microsoft.VisualStudio.TextTemplating.12.0 (en Microsoft.VisualStudio.TextTemplating.12.0.dll)
Sintaxis
'Declaración
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
El tipo RequiresProvidesDirectiveProcessor expone los siguientes miembros.
Constructores
Nombre | Descripción | |
---|---|---|
RequiresProvidesDirectiveProcessor | Cuando se reemplaza en una clase derivada, inicializa una nueva instancia de la clase RequiresProvidesDirectiveProcessor. |
Arriba
Propiedades
Nombre | Descripción | |
---|---|---|
Errors | Obtiene los errores que se produjeron al procesar las directivas. (Se hereda de DirectiveProcessor). | |
FriendlyName | Cuando se reemplaza en una clase derivada, obtiene el nombre descriptivo del procesador de directivas. | |
Host | Obtiene el host asociado a este procesador de directivas. |
Arriba
Métodos
Nombre | Descripción | |
---|---|---|
Equals | Determina si el objeto especificado es igual al objeto actual. (Se hereda de Object). | |
Finalize | Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de que sea reclamado por la recolección de elementos no utilizados. (Se hereda de Object). | |
FinishProcessingRun | Finaliza una fase de procesamiento de directivas. (Invalida a DirectiveProcessor.FinishProcessingRun()). | |
GeneratePostInitializationCode | Cuando se reemplaza en una clase derivada, agrega el código al código de inicialización para la clase de transformación generada.Este código se agrega después de inicializarse la clase base. | |
GeneratePreInitializationCode | Cuando se reemplaza en una clase derivada, agrega el código al código de inicialización de la clase de transformación generada.Este código se agrega antes de inicializarse la clase base. | |
GenerateTransformCode | Cuando se reemplaza en una clase derivada, agrega el código a la clase de transformación generada. | |
GetClassCodeForProcessingRun | Obtiene el código que se va a agregar a la clase de transformación generada. (Invalida a DirectiveProcessor.GetClassCodeForProcessingRun()). | |
GetHashCode | Sirve como la función hash predeterminada. (Se hereda de Object). | |
GetImportsForProcessingRun | Obtiene los espacios de nombres que se van a importar en la clase de transformación generada. (Invalida a DirectiveProcessor.GetImportsForProcessingRun()). | |
GetPostInitializationCodeForProcessingRun | Obtiene el código que se ha de inicializar cuando se inicialice la clase de transformación generada como consecuencia de la ejecución de procesamiento más reciente. (Invalida a DirectiveProcessor.GetPostInitializationCodeForProcessingRun()). | |
GetPreInitializationCodeForProcessingRun | Obtiene el código que se ha de inicializar cuando se inicialice la clase de transformación generada como consecuencia de la ejecución de procesamiento más reciente. (Invalida a DirectiveProcessor.GetPreInitializationCodeForProcessingRun()). | |
GetReferencesForProcessingRun | Obtiene las referencias que se van a pasar al compilador de la clase de transformación generada. (Invalida a DirectiveProcessor.GetReferencesForProcessingRun()). | |
GetTemplateClassCustomAttributes | Obtenga cualquier atributo personalizado para colocar la clase de plantilla. (Se hereda de DirectiveProcessor). | |
GetType | Obtiene el objeto Type de la instancia actual. (Se hereda de Object). | |
Initialize | Inicializa una instancia del procesador de directivas. (Invalida a DirectiveProcessor.Initialize(ITextTemplatingEngineHost)). | |
InitializeProvidesDictionary | Cuando se reemplaza en una clase derivada, especifica los parámetros proporciona para cada directiva. | |
InitializeRequiresDictionary | Cuando se reemplaza en una clase derivada, especifica los parámetros requiere para cada directiva. | |
IsDirectiveSupported | Cuando se reemplaza en una clase derivada, determina si el procesador de directivas admite la directiva especificada. (Se hereda de DirectiveProcessor). | |
MemberwiseClone | Crea una copia superficial del Object actual. (Se hereda de Object). | |
PostProcessArguments | Cuando se reemplaza en una clase derivada, permite que las clases derivadas introduzcan modificaciones en los parámetros que proporcionan y requieren. | |
ProcessDirective | Procesa una sola directiva de un archivo de plantilla de texto. (Invalida a DirectiveProcessor.ProcessDirective(String, IDictionary<String, String>)). | |
ProvideUniqueId | Proporciona un identificador que identifica una llamada al procesador de directivas. | |
StartProcessingRun | Inicia un procesador de directivas. (Invalida a DirectiveProcessor.StartProcessingRun(CodeDomProvider, String, CompilerErrorCollection)). | |
ToString | Devuelve una cadena que representa el objeto actual. (Se hereda de Object). |
Arriba
Implementaciones explícitas de interfaces
Nombre | Descripción | |
---|---|---|
IDirectiveProcessor.Errors | (Se hereda de DirectiveProcessor). | |
IDirectiveProcessor.RequiresProcessingRunIsHostSpecific | (Se hereda de DirectiveProcessor). | |
IDirectiveProcessor.SetProcessingRunIsHostSpecific | (Se hereda de DirectiveProcessor). |
Arriba
Comentarios
Para crear un procesador de directivas personalizado, crea una clase que herede de DirectiveProcessor o RequiresProvidesDirectiveProcessor.
DirectiveProcessor implementa la interfaz que se exige para capturar los parámetros del usuario y proporciona la funcionalidad para la clase de transformación generada. RequiresProvidesDirectiveProcessorRequiresProvidesDirectiveProcessor implementa el modelo de diseño, requiere/proporciona, para su procesador de directivas. RequiresProvidesDirectiveProcessor proporciona utilidades adicionales para capturar los parámetros del usuario y proporciona la funcionalidad para la clase de transformación generada con nombres de propiedad específicos.
Para obtener más información, vea Crear procesadores de directivas personalizadas para las plantillas de texto T4.
El motor de transformación contiene un singleton para cualquier clase RequiresProvidesDirectiveProcessor necesaria.
RequiresProvidesDirectiveProcessor implementa una máquina de estados.
Por ejemplo, si una plantilla de texto tiene tres llamadas de directiva al mismo procesador de directivas, el motor llama a los siguientes métodos en orden:
StartProcessingRun
Ejemplos
En el siguiente ejemplo se muestra cómo usar 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;
}
}
}
}
Seguridad para subprocesos
Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
Vea también
Referencia
Microsoft.VisualStudio.TextTemplating (Espacio de nombres)
Otros recursos
Crear procesadores de directivas personalizadas para las plantillas de texto T4