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.10.0 (em Microsoft.VisualStudio.TextTemplating.10.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 de RequiresProvidesDirectiveProcessor classe. |
Início
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 o processador de diretriz. |
Início
Métodos
Nome | Descrição | |
---|---|---|
Equals | Determina se o especificado Object é igual a atual Object. (Herdado de Object.) | |
Finalize | Permite que um objeto tentar liberar recursos e executar outras operações de limpeza antes que ele é recuperado 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 a classe de transformação gerada. (Substitui DirectiveProcessor.GetClassCodeForProcessingRun().) | |
GetHashCode | Serves as a hash function for a particular type. (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().) | |
GetType | Obtém o 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 diretriz suporta a diretiva especificada. (Herdado de DirectiveProcessor.) | |
MemberwiseClone | Cria uma cópia superficial do atual Object. (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 um string que representa o objeto atual. (Herdado de Object.) |
Início
Comentários
Para criar um processador de diretriz personalizado, você cria 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 funcionalidade para a classe de transformação gerada. RequiresProvidesDirectiveProcessor RequiresProvidesDirectiveProcessorimplementa 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 A criação de processadores de diretiva de modelo de texto personalizado.
O mecanismo de transformação contém um singleton para qualquer necessárias RequiresProvidesDirectiveProcessor classe.
RequiresProvidesDirectiveProcessorimplementa uma máquina de estado.
Por exemplo, se um modelo de texto tiver três chamadas de diretivas no mesmo processador de diretiva, o mecanismo chama os seguintes métodos na ordem:
StartProcessingRun(CodeDomProvider)
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 static (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
A criação de processadores de diretiva de modelo de texto personalizado