本文整理汇总了C#中PEModuleBuilder.SetEntryPoint方法的典型用法代码示例。如果您正苦于以下问题:C# PEModuleBuilder.SetEntryPoint方法的具体用法?C# PEModuleBuilder.SetEntryPoint怎么用?C# PEModuleBuilder.SetEntryPoint使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PEModuleBuilder
的用法示例。
在下文中一共展示了PEModuleBuilder.SetEntryPoint方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CompileMethodBodies
public static void CompileMethodBodies(
CSharpCompilation compilation,
PEModuleBuilder moduleBeingBuilt,
bool generateDebugInfo,
bool hasDeclarationErrors,
Predicate<Symbol> filter,
SyntaxTree filterTree,
TextSpan? filterSpanWithinTree,
DiagnosticBag diagnostics,
CancellationToken cancellationToken)
{
using (Logger.LogBlock(FunctionId.CSharp_Compiler_CompileMethodBodies, message: compilation.AssemblyName, cancellationToken: cancellationToken))
{
Debug.Assert(filter == null || filterTree == null, "Cannot provide both a filter predicate and a filter tree.");
if (filter == null && filterTree != null)
{
filter = s => s.IsDefinedInSourceTree(filterTree, filterSpanWithinTree);
}
if (compilation.PreviousSubmission != null)
{
// In case there is a previous submission, we should ensure
// it has already created anonymous type/delegates templates
// NOTE: if there are any errors, we will pick up what was created anyway
compilation.PreviousSubmission.EnsureAnonymousTypeTemplates(cancellationToken);
// TODO: revise to use a loop instead of a recursion
}
MethodBodyCompiler.CompileMethodBodies(compilation, moduleBeingBuilt, generateDebugInfo, hasDeclarationErrors, diagnostics, filter, cancellationToken);
MethodSymbol entryPoint = GetEntryPoint(compilation, moduleBeingBuilt, hasDeclarationErrors, diagnostics, cancellationToken);
if (moduleBeingBuilt != null)
{
moduleBeingBuilt.SetEntryPoint(entryPoint);
}
}
}