Udostępnij za pośrednictwem


Klasa RequiresProvidesDirectiveProcessor

Abstrakcyjna klasa podstawowa dla dyrektywy procesora, który określa i wykonuje wzorzec projektowania nazywane wymaga/miejsce.

Hierarchia dziedziczenia

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

Przestrzeń nazw:  Microsoft.VisualStudio.TextTemplating
Zestaw:  Microsoft.VisualStudio.TextTemplating.12.0 (w Microsoft.VisualStudio.TextTemplating.12.0.dll)

Składnia

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

Typ RequiresProvidesDirectiveProcessor uwidacznia następujące elementy członkowskie.

Konstruktorzy

  Nazwa Opis
Metoda chroniona RequiresProvidesDirectiveProcessor Po zastąpieniu w klasie pochodnej, inicjuje nowe wystąpienie RequiresProvidesDirectiveProcessor klasy.

Początek

Właściwości

  Nazwa Opis
Właściwość chroniona Errors Pobiera błędów, które wystąpiły podczas przetwarzania dyrektyw. (Odziedziczone z DirectiveProcessor).
Właściwość chroniona FriendlyName Po zastąpieniu w klasie pochodnej, pobiera przyjazna nazwa tekstów w dyrektywie.
Właściwość chroniona Host Pobiera hosta, który jest skojarzony z tym procesorem w dyrektywie.

Początek

Metody

  Nazwa Opis
Metoda publiczna Equals Determines whether the specified object is equal to the current object. (Odziedziczone z Object).
Metoda chroniona Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Odziedziczone z Object).
Metoda publiczna FinishProcessingRun Zakończy rozdanie Dyrektywa przetwarzania. (Zastępuje DirectiveProcessor.FinishProcessingRun()).
Metoda chroniona GeneratePostInitializationCode Po zastąpieniu w klasie pochodnej, dodaje kod do kodu inicjowania klasy wygenerowany transformacji.Ten kod jest dodawany po klasie podstawowej jest inicjowany.
Metoda chroniona GeneratePreInitializationCode Po zastąpieniu w klasie pochodnej, dodaje kod do kodu inicjowania klasy wygenerowany transformacji.Ten kod jest dodawane przed zainicjowaniem klasy podstawowej.
Metoda chroniona GenerateTransformCode Po zastąpieniu w klasie pochodnej, dodaje kod do klasy wygenerowany transformacji.
Metoda publiczna GetClassCodeForProcessingRun Pobiera kod, aby dodać do klasy wygenerowany transformacji. (Zastępuje DirectiveProcessor.GetClassCodeForProcessingRun()).
Metoda publiczna GetHashCode Serves as the default hash function. (Odziedziczone z Object).
Metoda publiczna GetImportsForProcessingRun Pobiera obszarów nazw do importowania do klasy wygenerowany transformacji. (Zastępuje DirectiveProcessor.GetImportsForProcessingRun()).
Metoda publiczna GetPostInitializationCodeForProcessingRun Pobiera kod, aby zainicjować podczas inicjowania klasy wygenerowany transformacji wyniku najnowszych przetwarzania Uruchom. (Zastępuje DirectiveProcessor.GetPostInitializationCodeForProcessingRun()).
Metoda publiczna GetPreInitializationCodeForProcessingRun Pobiera kod, aby zainicjować podczas inicjowania klasy wygenerowany transformacji wyniku najnowszych przetwarzania Uruchom. (Zastępuje DirectiveProcessor.GetPreInitializationCodeForProcessingRun()).
Metoda publiczna GetReferencesForProcessingRun Pobiera odwołań do przekazania do kompilatora klasy wygenerowany transformacji. (Zastępuje DirectiveProcessor.GetReferencesForProcessingRun()).
Metoda publiczna GetTemplateClassCustomAttributes Pobierz wszystkie atrybuty niestandardowe umieścić na szablonu klasy. (Odziedziczone z DirectiveProcessor).
Metoda publiczna GetType Gets the Type of the current instance. (Odziedziczone z Object).
Metoda publiczna Initialize Inicjuje wystąpienie procesora w dyrektywie. (Zastępuje DirectiveProcessor.Initialize(ITextTemplatingEngineHost)).
Metoda chroniona InitializeProvidesDictionary Po zastąpieniu w klasie pochodnej, określa zawiera parametry dla każdej dyrektywy.
Metoda chroniona InitializeRequiresDictionary Po zastąpieniu w klasie pochodnej, określa wymaga parametry dla każdej dyrektywy.
Metoda publiczna IsDirectiveSupported Po zastąpieniu w klasie pochodnej, określa, czy dyrektywa procesor obsługuje określony dyrektywą. (Odziedziczone z DirectiveProcessor).
Metoda chroniona MemberwiseClone Creates a shallow copy of the current Object. (Odziedziczone z Object).
Metoda chroniona PostProcessArguments Po zastąpieniu w klasie pochodnej, pozwala klas pochodnych do wprowadzenia wszelkich zmian do parametrów, które zapewniają i wymagają.
Metoda publiczna ProcessDirective Przetwarza jedna dyrektywa szablonu w pliku tekstowym. (Zastępuje DirectiveProcessor.ProcessDirective(String, IDictionary<String, String>)).
Metoda chroniona ProvideUniqueId Zawiera identyfikator, który identyfikuje wywołanie procesora w dyrektywie.
Metoda publiczna StartProcessingRun Rozpoczyna się w dyrektywie procesora. (Zastępuje DirectiveProcessor.StartProcessingRun(CodeDomProvider, String, CompilerErrorCollection)).
Metoda publiczna ToString Returns a string that represents the current object. (Odziedziczone z Object).

Początek

Jawne implementacje interfejsu

  Nazwa Opis
Jawna implementacja interfejsuWłaściwość prywatna IDirectiveProcessor.Errors (Odziedziczone z DirectiveProcessor).
Jawna implementacja interfejsuWłaściwość prywatna IDirectiveProcessor.RequiresProcessingRunIsHostSpecific (Odziedziczone z DirectiveProcessor).
Jawna implementacja interfejsuMetoda prywatna IDirectiveProcessor.SetProcessingRunIsHostSpecific (Odziedziczone z DirectiveProcessor).

Początek

Uwagi

Aby utworzyć niestandardowy procesor w dyrektywie, należy utworzyć klasy, która dziedziczy z jednej DirectiveProcessor lub RequiresProvidesDirectiveProcessor.

DirectiveProcessorimplementuje interfejs, który jest wymagany do przechwytywania od użytkownika parametrów i zapewnia funkcje dla klasy wygenerowany transformacji.RequiresProvidesDirectiveProcessorRequiresProvidesDirectiveProcessorimplementuje wzorca projektowego wymaga zapewnienias dla procesora w dyrektywie.RequiresProvidesDirectiveProcessorzapewnia dodatkowe urządzenia do przechwytywania od użytkownika parametrów i zapewnia funkcje do klasy wygenerowany transformacji z nazw określonych właściwości.

Aby uzyskać więcej informacji, zobacz Tworzenie niestandardowych procesorów dyrektywy T4 dotyczącej szablonu tekstowego.

Pojedyncza aparat przekształcenie odnosi się do wszystkie wymagane RequiresProvidesDirectiveProcessor klasy.

RequiresProvidesDirectiveProcessorimplementuje automat stanowy.

Na przykład szablon tekst zawiera trzy wywołania w dyrektywie dla tego samego procesora w dyrektywie, silnik wywołuje następujące metody w kolejności:

Przykłady

Poniższy przykład pokazuje sposób użycia 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;
}
}
}
}

Bezpieczeństwo wątku

Wszystkie publiczne static (Shared w języku Visual Basic) elementy członkowskie tego typu są bezpieczne dla wątków. Wystąpienia elementów członkowskich nie dają gwarancji bezpieczeństwa wątków.

Zobacz też

Informacje

Przestrzeń nazw Microsoft.VisualStudio.TextTemplating

DirectiveProcessor

Inne zasoby

Tworzenie niestandardowych procesorów dyrektywy T4 dotyczącej szablonu tekstowego