RequiresProvidesDirectiveProcessor.GeneratePreInitializationCode 方法

在派生类中重写时,向已生成转换类的初始化代码中添加代码。 此代码将在初始化基类之前添加。

命名空间:  Microsoft.VisualStudio.TextTemplating
程序集:  Microsoft.VisualStudio.TextTemplating.10.0(在 Microsoft.VisualStudio.TextTemplating.10.0.dll 中)

语法

声明
Protected MustOverride Sub GeneratePreInitializationCode ( _
    directiveName As String, _
    codeBuffer As StringBuilder, _
    languageProvider As CodeDomProvider, _
    requiresArguments As IDictionary(Of String, String), _
    providesArguments As IDictionary(Of String, String) _
)
protected abstract void GeneratePreInitializationCode(
    string directiveName,
    StringBuilder codeBuffer,
    CodeDomProvider languageProvider,
    IDictionary<string, string> requiresArguments,
    IDictionary<string, string> providesArguments
)
protected:
virtual void GeneratePreInitializationCode(
    String^ directiveName, 
    StringBuilder^ codeBuffer, 
    CodeDomProvider^ languageProvider, 
    IDictionary<String^, String^>^ requiresArguments, 
    IDictionary<String^, String^>^ providesArguments
) abstract
abstract GeneratePreInitializationCode : 
        directiveName:string * 
        codeBuffer:StringBuilder * 
        languageProvider:CodeDomProvider * 
        requiresArguments:IDictionary<string, string> * 
        providesArguments:IDictionary<string, string> -> unit 
protected abstract function GeneratePreInitializationCode(
    directiveName : String, 
    codeBuffer : StringBuilder, 
    languageProvider : CodeDomProvider, 
    requiresArguments : IDictionary<String, String>, 
    providesArguments : IDictionary<String, String>
)

参数

  • codeBuffer
    类型:System.Text.StringBuilder
    串联代码的缓冲区。处理运行期间,在初始化基类之前,所有指令处理器都必须运行这些代码。在初始化基类之前,此指令处理器必须为此指令运行的所有代码都应串联到此缓冲区。

备注

因为 GenerateTransformCode 可将方法添加至生成的转换类,因此初始化代码通常需要调用这些方法。

对于此处理器处理的每个指令调用此方法一次。 因此,您可以将每个指令的代码追加到 codeBuffer。 GetPreInitializationCodeForProcessingRun 在处理完所有指令之后返回 codeBuffer 的内容。

此方法由 ProcessDirective 调用。

示例

本示例生成在初始化基类前运行的代码。 此示例摘自为 RequiresProvidesDirectiveProcessor 类提供的一个更大的示例。

protected override void GeneratePreInitializationCode(string directiveName, StringBuilder codeBuffer, System.CodeDom.Compiler.CodeDomProvider languageProvider, IDictionary<string, string> requiresArguments, IDictionary<string, string> providesArguments)
{
if (StringComparer.InvariantCultureIgnoreCase.Compare(directiveName, DomDirectiveTag) == 0)
{
// Add your code for the pre-initialize stage for this processor.
}
}

.NET Framework 安全性

请参见

参考

RequiresProvidesDirectiveProcessor 类

Microsoft.VisualStudio.TextTemplating 命名空间

GeneratePostInitializationCode

GenerateTransformCode

ProcessDirective

GetPreInitializationCodeForProcessingRun