RequiresProvidesDirectiveProcessor.GeneratePreInitializationCode 方法
在派生类中重写时,向已生成转换类的初始化代码中添加代码。此代码将在初始化基类之前添加。
命名空间: Microsoft.VisualStudio.TextTemplating
程序集: Microsoft.VisualStudio.TextTemplating.11.0(在 Microsoft.VisualStudio.TextTemplating.11.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>
)
参数
- directiveName
类型:System.String
指令的名称。
- codeBuffer
类型:System.Text.StringBuilder
串联代码的缓冲区。处理运行期间,在初始化基类之前,所有指令处理器都必须运行这些代码。在初始化基类之前,此指令处理器必须为此指令运行的所有代码都应串联到此缓冲区。
- languageProvider
类型:System.CodeDom.Compiler.CodeDomProvider
创建要添加到 codebuffer 中的代码的代码生成器。
- requiresArguments
类型:System.Collections.Generic.IDictionary<String, String>
指令处理器请求的标准参数。
- providesArguments
类型:System.Collections.Generic.IDictionary<String, String>
指令处理器提供的标准参数。
备注
因为 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 命名空间