Classe RequiresProvidesDirectiveProcessor
A classe base abstrata para um processador de diretriz que define e implementa um padrão de design chamado requer/fornece.
Hierarquia de herança
System.Object
Microsoft.VisualStudio.TextTemplating.DirectiveProcessor
Microsoft.VisualStudio.TextTemplating.RequiresProvidesDirectiveProcessor
Namespace: Microsoft.VisualStudio.TextTemplating
Assembly: Microsoft.VisualStudio.TextTemplating.11.0 (em Microsoft.VisualStudio.TextTemplating.11.0.dll)
Sintaxe
'Declaração
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
O tipo RequiresProvidesDirectiveProcessor expõe os membros a seguir.
Construtores
Nome | Descrição | |
---|---|---|
RequiresProvidesDirectiveProcessor | Quando substituído em uma classe derivada, inicializa uma nova instância da RequiresProvidesDirectiveProcessor classe. |
Superior
Propriedades
Nome | Descrição | |
---|---|---|
Errors | Obtém os erros que ocorreram durante o processamento de diretivas. (Herdado de DirectiveProcessor.) | |
FriendlyName | Quando substituído em uma classe derivada, obtém o nome amigável do processador de diretriz. | |
Host | Obtém o host que está associado com este processador de diretriz. |
Superior
Métodos
Nome | Descrição | |
---|---|---|
Equals | determina se o objeto especificado é igual ao objeto atual. (Herdado de Object.) | |
Finalize | Permite que um objeto tentar liberar recursos e realizar outras operações de limpeza antes de ser recuperados pela coleta de lixo. (Herdado de Object.) | |
FinishProcessingRun | Concluir uma rodada de processamento da diretriz. (Substitui DirectiveProcessor.FinishProcessingRun().) | |
GeneratePostInitializationCode | Quando substituído em uma classe derivada, adiciona código para o código de inicialização para a classe de transformação gerada.Esse código é adicionado depois que a classe base é inicializada. | |
GeneratePreInitializationCode | Quando substituído em uma classe derivada, adiciona código para o código de inicialização da classe gerada de transformação.Esse código é adicionado antes que a classe base seja inicializada. | |
GenerateTransformCode | Quando substituído em uma classe derivada, adiciona código para a classe de transformação gerada. | |
GetClassCodeForProcessingRun | Obtém o código para adicionar à classe de transformação gerada. (Substitui DirectiveProcessor.GetClassCodeForProcessingRun().) | |
GetHashCode | Serve como uma função de hash para um tipo específico. (Herdado de Object.) | |
GetImportsForProcessingRun | Obtém os namespaces para importar para a classe de transformação gerada. (Substitui DirectiveProcessor.GetImportsForProcessingRun().) | |
GetPostInitializationCodeForProcessingRun | Obtém o código para inicializar quando a classe de transformação gerado é inicializada, como conseqüência do processamento mais recente executar. (Substitui DirectiveProcessor.GetPostInitializationCodeForProcessingRun().) | |
GetPreInitializationCodeForProcessingRun | Obtém o código para inicializar quando a classe de transformação gerado é inicializada, como conseqüência do processamento mais recente executar. (Substitui DirectiveProcessor.GetPreInitializationCodeForProcessingRun().) | |
GetReferencesForProcessingRun | Obtém as referências para passar para o compilador da classe gerada de transformação. (Substitui DirectiveProcessor.GetReferencesForProcessingRun().) | |
GetTemplateClassCustomAttributes | Obtenha todos os atributos personalizados para colocar na classe de modelo. (Herdado de DirectiveProcessor.) | |
GetType | Obtém Type da instância atual. (Herdado de Object.) | |
Initialize | Inicializa uma instância do processador de diretriz. (Substitui DirectiveProcessor.Initialize(ITextTemplatingEngineHost).) | |
InitializeProvidesDictionary | Quando substituído em uma classe derivada, especifica o fornece parâmetros para cada diretiva. | |
InitializeRequiresDictionary | Quando substituído em uma classe derivada, especifica o requer parâmetros para cada diretiva. | |
IsDirectiveSupported | Quando substituído em uma classe derivada, determina se o processador de diretiva oferece suporte a diretiva especificada. (Herdado de DirectiveProcessor.) | |
MemberwiseClone | Cria uma cópia superficial de Objectatual. (Herdado de Object.) | |
PostProcessArguments | Quando substituído em uma classe derivada, permite que as classes derivadas fazer quaisquer modificações para os parâmetros que eles oferecem e exigem. | |
ProcessDirective | Processa uma única diretiva de um arquivo de modelo de texto. (Substitui DirectiveProcessor.ProcessDirective(String, IDictionary<String, String>).) | |
ProvideUniqueId | Fornece uma ID que identifica uma chamada para o processador de diretriz. | |
StartProcessingRun | Inicia um processador de diretriz. (Substitui DirectiveProcessor.StartProcessingRun(CodeDomProvider, String, CompilerErrorCollection).) | |
ToString | Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object.) |
Superior
Implementações explícitas da interface
Nome | Descrição | |
---|---|---|
IDirectiveProcessor.Errors | (Herdado de DirectiveProcessor.) | |
IDirectiveProcessor.RequiresProcessingRunIsHostSpecific | (Herdado de DirectiveProcessor.) | |
IDirectiveProcessor.SetProcessingRunIsHostSpecific | (Herdado de DirectiveProcessor.) |
Superior
Comentários
Para criar um processador de diretriz personalizado, você pode criar uma classe que herda a partir de um DirectiveProcessor ou RequiresProvidesDirectiveProcessor.
DirectiveProcessorimplementa a interface que é necessário para capturar os parâmetros do usuário e fornece a funcionalidade para a classe de transformação gerada.RequiresProvidesDirectiveProcessorRequiresProvidesDirectiveProcessorimplementa o padrão de design, /fornecem requers, o processador de diretriz.RequiresProvidesDirectiveProcessorfornece recursos adicionais para capturar os parâmetros do usuário e fornece funcionalidade para a classe de transformação gerado com nomes de propriedade específica.
Para obter mais informações, consulte Criação de processadores de diretiva de modelo personalizado T4 texto.
O mecanismo de transformação mantém um singleton para qualquer argumento RequiresProvidesDirectiveProcessor classe.
RequiresProvidesDirectiveProcessorimplementa uma máquina de estado.
Por exemplo, se um modelo de texto tiver três chamadas diretriz para o mesmo processador de diretriz, o mecanismo chama os seguintes métodos na ordem:
StartProcessingRun
Exemplos
O exemplo a seguir demonstra como usar o 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;
}
}
}
}
Acesso thread-safe
Quaisquer membros estático (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.
Consulte também
Referência
Namespace Microsoft.VisualStudio.TextTemplating
Outros recursos
Criação de processadores de diretiva de modelo personalizado T4 texto