Udostępnij za pośrednictwem


Klasa RequiresProvidesDirectiveProcessor

Abstrakcyjna klasa podstawowa dla procesora dyrektywa, która definiuje i implementuje wzorca projektowania, nazywane wymaga/miejsce.

Hierarchia dziedziczenia

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

Przestrzeń nazw:  Microsoft.VisualStudio.TextTemplating
Zestaw:  Microsoft.VisualStudio.TextTemplating.11.0 (w Microsoft.VisualStudio.TextTemplating.11.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 Gdy zastąpiony 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 Gdy zastąpiony w klasie pochodnej, pobiera się przyjazna nazwa procesora w dyrektywie.
Właściwość chroniona Host Pobiera hosta, który jest skojarzony z tym dyrektywa procesora.

Początek

Metody

  Nazwa Opis
Metoda publiczna Equals Określa, czy określony obiekt jest równa bieżącego obiektu. (Odziedziczone z Object).
Metoda chroniona Finalize Umożliwia obiekt spróbuj zwolnić zasoby i wykonywania innych operacji oczyszczania, zanim jest odzyskane w procesie wyrzucania elementów bezużytecznych. (Odziedziczone z Object).
Metoda publiczna FinishProcessingRun Zakończy przetwarzania dyrektywy. (Zastępuje DirectiveProcessor.FinishProcessingRun()).
Metoda chroniona GeneratePostInitializationCode Gdy zastąpiony w klasie pochodnej, dodaje kod do kodu inicjowania klasy generowane transformacji.Ten kod jest dodawany po klasy podstawowej jest zainicjowany.
Metoda chroniona GeneratePreInitializationCode Gdy zastąpiony w klasie pochodnej, dodaje kod do kodu inicjowania klasy generowane transformacji.Ten kod zostanie dodany przed klasy podstawowej jest zainicjowany.
Metoda chroniona GenerateTransformCode Gdy zastąpiony w klasie pochodnej, dodaje kod do klasy generowane transformacji.
Metoda publiczna GetClassCodeForProcessingRun Pobiera kod, aby dodać do klasy generowane transformacji. (Zastępuje DirectiveProcessor.GetClassCodeForProcessingRun()).
Metoda publiczna GetHashCode Służy jako funkcja mieszania dla określonego typu. (Odziedziczone z Object).
Metoda publiczna GetImportsForProcessingRun Pobiera obszarów nazw do zaimportowania klasy generowane transformacji. (Zastępuje DirectiveProcessor.GetImportsForProcessingRun()).
Metoda publiczna GetPostInitializationCodeForProcessingRun Pobiera kod, aby zainicjować podczas inicjowania klasy generowane transformacji, z najnowszych przetwarzania uruchomić. (Zastępuje DirectiveProcessor.GetPostInitializationCodeForProcessingRun()).
Metoda publiczna GetPreInitializationCodeForProcessingRun Pobiera kod, aby zainicjować podczas inicjowania klasy generowane transformacji, z najnowszych przetwarzania uruchomić. (Zastępuje DirectiveProcessor.GetPreInitializationCodeForProcessingRun()).
Metoda publiczna GetReferencesForProcessingRun Pobiera odwołania do przekazania do kompilator klas generowanych transformacji. (Zastępuje DirectiveProcessor.GetReferencesForProcessingRun()).
Metoda publiczna GetTemplateClassCustomAttributes Pobierz atrybuty niestandardowe w klasie szablonu. (Odziedziczone z DirectiveProcessor).
Metoda publiczna GetType Pobiera Type bieżącej instancji. (Odziedziczone z Object).
Metoda publiczna Initialize Inicjuje wystąpienie dyrektywa procesora. (Zastępuje DirectiveProcessor.Initialize(ITextTemplatingEngineHost)).
Metoda chroniona InitializeProvidesDictionary Określa, kiedy zastąpiony w klasie pochodnej, zawiera parametry dla każdej dyrektywy.
Metoda chroniona InitializeRequiresDictionary Określa, kiedy zastąpiony w klasie pochodnej, wymaga parametry dla każdej dyrektywy.
Metoda publiczna IsDirectiveSupported Zastąpiony w klasie pochodnej, ustala, czy dyrektywa procesora obsługuje określony dyrektywą. (Odziedziczone z DirectiveProcessor).
Metoda chroniona MemberwiseClone Tworzy kopię płytkie bieżące Object. (Odziedziczone z Object).
Metoda chroniona PostProcessArguments Gdy zastąpiony w klasie pochodnej, umożliwia klas pochodnych do wprowadzenia jakichkolwiek zmian do parametrów, które zapewniają i wymagają.
Metoda publiczna ProcessDirective Przetwarza jedna dyrektywa z pliku szablonu tekstu. (Zastępuje DirectiveProcessor.ProcessDirective(String, IDictionary<String, String>)).
Metoda chroniona ProvideUniqueId Zawiera identyfikator, który identyfikuje wywołanie dyrektywa procesora.
Metoda publiczna StartProcessingRun Uruchamia dyrektywa procesora. (Zastępuje DirectiveProcessor.StartProcessingRun(CodeDomProvider, String, CompilerErrorCollection)).
Metoda publiczna ToString Zwraca ciąg, który reprezentuje bieżącego obiektu. (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ć niestandardowe procesora w dyrektywie, należy utworzyć klasy, która dziedziczy albo DirectiveProcessor lub RequiresProvidesDirectiveProcessor.

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

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

Silnik transformacji posiada singleton wszelkich wymaganych RequiresProvidesDirectiveProcessor klasy.

RequiresProvidesDirectiveProcessorimplementuje komputera stanu.

Na przykład jeśli szablon tekst ma trzy dyrektywa wywołania do tej samej dyrektywy procesora, silnika wywołuje następujące metody w kolejności:

Przykłady

Poniższy przykład demonstruje, jak używać 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 T4 tekst szablonu dyrektywy procesorów