RequiresProvidesDirectiveProcessor - класс
Абстрактный базовый класс для процессора директив, определяющий и реализующий шаблон, который называется "requires/provides".
Иерархия наследования
System.Object
Microsoft.VisualStudio.TextTemplating.DirectiveProcessor
Microsoft.VisualStudio.TextTemplating.RequiresProvidesDirectiveProcessor
Пространство имен: Microsoft.VisualStudio.TextTemplating
Сборка: Microsoft.VisualStudio.TextTemplating.11.0 (в Microsoft.VisualStudio.TextTemplating.11.0.dll)
Синтаксис
'Декларация
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
Тип RequiresProvidesDirectiveProcessor предоставляет следующие члены.
Конструкторы
Имя | Описание | |
---|---|---|
![]() |
RequiresProvidesDirectiveProcessor | При переопределении в производном классе инициализирует новый экземпляр класса RequiresProvidesDirectiveProcessor. |
В начало страницы
Свойства
Имя | Описание | |
---|---|---|
![]() |
Errors | Возвращает ошибки, возникшие при обработке директив. (Унаследовано от DirectiveProcessor.) |
![]() |
FriendlyName | При переопределении в производном классе получает понятное имя процессора директив. |
![]() |
Host | Получает основное приложение, связанное с данным процессором директив. |
В начало страницы
Методы
Имя | Описание | |
---|---|---|
![]() |
Equals | Определяет, равен ли заданный объект текущему объекту. (Унаследовано от Object.) |
![]() |
Finalize | Позволяет объекту попытаться освободить ресурсы и выполнить другие операции очистки, перед тем как объект будет утилизирован в процессе сборки мусора. (Унаследовано от Object.) |
![]() |
FinishProcessingRun | Завершает круг обработки директив. (Переопределяет DirectiveProcessor.FinishProcessingRun().) |
![]() |
GeneratePostInitializationCode | При переопределении в производном классе добавляет код в код инициализации для создаваемого класса преобразования.Этот код добавляется после инициализации базового класса. |
![]() |
GeneratePreInitializationCode | При переопределении в производном классе добавляет код в код инициализации для создаваемого класса преобразования.Этот код добавляется до инициализации базового класса. |
![]() |
GenerateTransformCode | При переопределении в производном классе добавляет код в создаваемый класс преобразования. |
![]() |
GetClassCodeForProcessingRun | Получает код для добавления в созданный класс преобразования. (Переопределяет DirectiveProcessor.GetClassCodeForProcessingRun().) |
![]() |
GetHashCode | Играет роль хэш-функции для определенного типа. (Унаследовано от Object.) |
![]() |
GetImportsForProcessingRun | Получает пространства имен для импорта в созданный класс преобразования. (Переопределяет DirectiveProcessor.GetImportsForProcessingRun().) |
![]() |
GetPostInitializationCodeForProcessingRun | Получает код для инициализации при инициализации созданного класса преобразования вследствие последнего запуска обработки. (Переопределяет DirectiveProcessor.GetPostInitializationCodeForProcessingRun().) |
![]() |
GetPreInitializationCodeForProcessingRun | Получает код для инициализации при инициализации созданного класса преобразования вследствие последнего запуска обработки. (Переопределяет DirectiveProcessor.GetPreInitializationCodeForProcessingRun().) |
![]() |
GetReferencesForProcessingRun | Получает ссылки для передачи компилятору созданного класса преобразования. (Переопределяет DirectiveProcessor.GetReferencesForProcessingRun().) |
![]() |
GetTemplateClassCustomAttributes | Получите все настраиваемые атрибуты поместить в класс шаблона. (Унаследовано от DirectiveProcessor.) |
![]() |
GetType | Возвращает объект Type для текущего экземпляра. (Унаследовано от Object.) |
![]() |
Initialize | Инициализирует экземпляр процессора директив. (Переопределяет DirectiveProcessor.Initialize(ITextTemplatingEngineHost).) |
![]() |
InitializeProvidesDictionary | При переопределении в производном классе задает параметры provides для каждой из директив. |
![]() |
InitializeRequiresDictionary | При переопределении в производном классе задает параметры requires для каждой из директив. |
![]() |
IsDirectiveSupported | При переопределении в производном классе определяет, поддерживает ли процессор директив указанную директиву. (Унаследовано от DirectiveProcessor.) |
![]() |
MemberwiseClone | Создает неполную копию текущего объекта Object. (Унаследовано от Object.) |
![]() |
PostProcessArguments | При переопределении в производном классе позволяет производному классу вносить любые изменения в требуемые и предоставляемые параметры. |
![]() |
ProcessDirective | Обрабатывает одну директиву из файла текстового шаблона. (Переопределяет DirectiveProcessor.ProcessDirective(String, IDictionary<String, String>).) |
![]() |
ProvideUniqueId | Предоставляет идентификатор вызова процессора директив. |
![]() |
StartProcessingRun | Запускает процессор директив. (Переопределяет DirectiveProcessor.StartProcessingRun(CodeDomProvider, String, CompilerErrorCollection).) |
![]() |
ToString | Возвращает строку, которая представляет текущий объект. (Унаследовано от Object.) |
В начало страницы
Явные реализации интерфейса
Имя | Описание | |
---|---|---|
![]() ![]() |
IDirectiveProcessor.Errors | (Унаследовано от DirectiveProcessor.) |
![]() ![]() |
IDirectiveProcessor.RequiresProcessingRunIsHostSpecific | (Унаследовано от DirectiveProcessor.) |
![]() ![]() |
IDirectiveProcessor.SetProcessingRunIsHostSpecific | (Унаследовано от DirectiveProcessor.) |
В начало страницы
Заметки
Для создания пользовательского процессора директив создается класс, наследующий DirectiveProcessor либо RequiresProvidesDirectiveProcessor.
DirectiveProcessor реализует интерфейс, который требуется для записи параметров от пользователя, и обеспечивает функциональные возможности для преобразования созданного класса.RequiresProvidesDirectiveProcessorRequiresProvidesDirectiveProcessor реализует шаблон разработки, требует/обеспечивает для процессора директивы.RequiresProvidesDirectiveProcessor предоставляет дополнительные средства для записи параметров от пользователя и функциональные возможности для класса преобразования с определенными именами свойств.
Дополнительные сведения см. в разделе Создание пользовательских обработчиков директив для текстовых шаблонов T4.
Механизм преобразования содержит одноэлементный экземпляр всех требуемых классов RequiresProvidesDirectiveProcessor.
RequiresProvidesDirectiveProcessor реализует конечный автомат.
Например, если текстовый шаблон содержит три директивных вызова одного и того же процессора директив, ядро вызывает следующие методы по порядку:
StartProcessingRun
Примеры
В следующем примере демонстрируется использование примитива 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;
}
}
}
}
Потокобезопасность
Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.
См. также
Ссылки
Microsoft.VisualStudio.TextTemplating - пространство имен
Другие ресурсы
Создание пользовательских обработчиков директив для текстовых шаблонов T4