共用方式為


ITextTemplatingEngineHost.ResolveDirectiveProcessor 方法

根據指定之指示詞處理器的易記名稱,傳回該指示詞處理器的型別。

命名空間:  Microsoft.VisualStudio.TextTemplating
組件:  Microsoft.VisualStudio.TextTemplating.Interfaces.10.0 (在 Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll 中)

語法

'宣告
Function ResolveDirectiveProcessor ( _
    processorName As String _
) As Type
Type ResolveDirectiveProcessor(
    string processorName
)
Type^ ResolveDirectiveProcessor(
    String^ processorName
)
abstract ResolveDirectiveProcessor : 
        processorName:string -> Type 
function ResolveDirectiveProcessor(
    processorName : String
) : Type

參數

  • processorName
    型別:System.String
    要解析之指示詞處理器的名稱。

傳回值

型別:System.Type
指示詞處理器的 Type

備註

引擎會根據使用者在文字範本中指定的指示詞來呼叫這個方法。 每個文字範本轉換可呼叫這個方法 0次、1次或多次。 如需詳細資訊,請參閱T4 文字範本指示詞

如果無法解析指示詞處理器名稱,此方法應該會擲回例外狀況。

如果主應用程式在 ResolveDirectiveProcessor 方法中用來尋找指示詞處理器的機制是不安全的,則可以執行惡意指示詞處理器。 惡意的指示詞處理器可以在範本執行時提供以完全信任模式執行的程式碼。 如果您建立自訂主機,您必須使用如登錄的安全機制來找出指示詞處理器。 如需詳細資訊,請參閱文字範本的安全性

範例

下列程式碼範例示範自訂主機可能的實作。 這個程式碼範例是 ITextTemplatingEngineHost 介面完整範例的一部分。

如需示範如何解決所產生指示詞處理器之要求的更詳細範例,請參閱 逐步解說:將主機連接至產生的指示詞處理器

public Type ResolveDirectiveProcessor(string processorName)
{
    //this host will not resolve any specific processors

    //check the processor name, and if it is the name of a processor the 
    //host wants to support, return the type of the processor
    //---------------------------------------------------------------------
    if (string.Compare(processorName, "XYZ", StringComparison.OrdinalIgnoreCase) == 0)
    {
        //return typeof();
    }

    //this can be customized to search specific paths for the file,
    //or to search the GAC

    //if the directive processor can not be found, throw an error
    throw new Exception("Directive Processor not found");
}
Public Function ResolveDirectiveProcessor(ByVal processorName As String) As System.Type Implements Microsoft.VisualStudio.TextTemplating.ITextTemplatingEngineHost.ResolveDirectiveProcessor
    'this host will not resolve any specific processors

    'check the processor name, and if it is the name of a processor the 
    'host wants to support, return the type of the processor
    '---------------------------------------------------------------------
    If String.Compare(processorName, "XYZ", StringComparison.OrdinalIgnoreCase) = 0 Then
        'return typeof()
    End If

    'this can be customized to search specific paths for the file,
    'or to search the GAC

    'if the directive processor can not be found, throw an error
    Throw New Exception("Directive Processor not found")
End Function

.NET Framework 安全性

請參閱

參考

ITextTemplatingEngineHost 介面

Microsoft.VisualStudio.TextTemplating 命名空間

ResolveAssemblyReference

ResolveFileName(String)

其他資源

逐步解說:建立自訂文字範本主機

文字範本的安全性