共用方式為


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 的淺層複本 (Shallow Copy)。 (繼承自 Object)。
受保護的方法 PostProcessArguments 在衍生類別中覆寫時,允許衍生類別對所提供和需要的參數進行任何修改。
公用方法 ProcessDirective 處理文字範本檔中的單一指示詞。 (覆寫 DirectiveProcessor.ProcessDirective(String, IDictionary<String, String>)。)
受保護的方法 ProvideUniqueId 提供用來識別指示詞處理器之呼叫的 ID。
公用方法 StartProcessingRun 啟動指示詞處理器。 (覆寫 DirectiveProcessor.StartProcessingRun(CodeDomProvider, String, CompilerErrorCollection)。)
公用方法 ToString 傳回表示目前物件的字串。 (繼承自 Object)。

回頁首

明確介面實作

  名稱 說明
明確介面實作私用屬性 IDirectiveProcessor.Errors (繼承自 DirectiveProcessor)。
明確介面實作私用屬性 IDirectiveProcessor.RequiresProcessingRunIsHostSpecific (繼承自 DirectiveProcessor)。
明確介面實作私用方法 IDirectiveProcessor.SetProcessingRunIsHostSpecific (繼承自 DirectiveProcessor)。

回頁首

備註

若要建立自訂指示詞處理器,您可以建立繼承 DirectiveProcessor 或 RequiresProvidesDirectiveProcessor 的類別。

DirectiveProcessor 會實作從使用者擷取參數所需的介面,並且提供所產生的轉換類別的功能。 RequiresProvidesDirectiveProcessorRequiresProvidesDirectiveProcessor 會實作指示詞處理器的設計模式,也就是「需求/提供」(Require/Provide)。 RequiresProvidesDirectiveProcessor 提供額外的機能來擷取該使用者的參數,並為具有指定屬性名稱的產生轉換類別提供功能。

如需詳細資訊,請參閱 建立自訂 T4 文字範本指示詞處理器

轉換引擎會保留任何必要的 RequiresProvidesDirectiveProcessor 類別的單一物件。

RequiresProvidesDirectiveProcessor 會實作狀態機器。

例如,如果文字範本對同一個指示詞處理器發出三個指示詞呼叫,引擎會依順序呼叫下列方法:

範例

下列範例示範如何使用 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;
}
}
}
}

執行緒安全

這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。不保證任何執行個體成員是安全執行緒。

請參閱

參考

Microsoft.VisualStudio.TextTemplating 命名空間

DirectiveProcessor

其他資源

建立自訂 T4 文字範本指示詞處理器