VisualBasicCompilation 类

定义

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

public ref class VisualBasicCompilation sealed : Microsoft::CodeAnalysis::Compilation
public sealed class VisualBasicCompilation : Microsoft.CodeAnalysis.Compilation
type VisualBasicCompilation = class
    inherit Compilation
Public NotInheritable Class VisualBasicCompilation
Inherits Compilation
继承
VisualBasicCompilation

字段

_features

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)

属性

Assembly

表示 IAssemblySymbol 所创建的程序集的 。

(继承自 Compilation)
AssemblyName

简单程序集名称,如果未指定,则为 null。

(继承自 Compilation)
CommonAssembly

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonDynamicType

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonGlobalNamespace

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonObjectType

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonOptions

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonScriptClass

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonScriptGlobalsType

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonSourceModule

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonSyntaxTrees

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
DirectiveReferences

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

DynamicType

此编译中类型“dynamic”的 TypeSymbol。

(继承自 Compilation)
ExternalReferences

传递给编译构造函数的元数据引用。

(继承自 Compilation)
GlobalNamespace

包含源代码或引用元数据中定义的所有命名空间和类型的根命名空间,合并到单个命名空间层次结构中。

(继承自 Compilation)
IsCaseSensitive

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

Language

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

LanguageVersion

用于分析此编译的语法树的语言版本。

ObjectType

.NET System.Object 类型的 INamedTypeSymbol,如果此编译中没有 COR 库,该类型可能具有错误 TypeKind。

(继承自 Compilation)
Options

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

ReferencedAssemblyNames

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

References

所有元数据引用 - 传递给编译构造函数的引用,以及通过 #r 指令指定的引用。

(继承自 Compilation)
ScriptClass

表示隐式 Script 类的符号。 如果未在编译中定义 类,则为 null。

(继承自 Compilation)
ScriptCompilationInfo

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
SourceModule

IModuleSymbol通过编译所有源代码获取要创建的模块的 。

(继承自 Compilation)
SyntaxTrees

获取创建此编译时使用的语法树的只读列表。

方法

AddReferences(IEnumerable<MetadataReference>)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

AddReferences(MetadataReference[])

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

AddSyntaxTrees(IEnumerable<SyntaxTree>)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

AddSyntaxTrees(SyntaxTree[])

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

AppendDefaultVersionResource(Stream)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
ClassifyCommonConversion(ITypeSymbol, ITypeSymbol)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

ClassifyConversion(ITypeSymbol, ITypeSymbol)

确定类型“source”和“destination”之间存在哪种类型的转换(如果有)。

Clone()

使用不同的符号实例创建此编译的副本

CommonAddSyntaxTrees(IEnumerable<SyntaxTree>)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonBindScriptClass()

解析表示脚本容器的符号 (Script 类) 。 使用存储在 中的 ScriptClassName 容器类的全名来查找 符号。

(继承自 Compilation)
CommonClone()

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonContainsSyntaxTree(SyntaxTree)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonCreateAnonymousTypeSymbol(ImmutableArray<ITypeSymbol>, ImmutableArray<String>, ImmutableArray<Location>, ImmutableArray<Boolean>)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonCreateAnonymousTypeSymbol(ImmutableArray<ITypeSymbol>, ImmutableArray<String>, ImmutableArray<Location>, ImmutableArray<Boolean>, ImmutableArray<NullableAnnotation>)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonCreateArrayTypeSymbol(ITypeSymbol, Int32)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonCreateArrayTypeSymbol(ITypeSymbol, Int32, NullableAnnotation)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonCreateBuiltinOperator(String, ITypeSymbol, ITypeSymbol)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonCreateBuiltinOperator(String, ITypeSymbol, ITypeSymbol, ITypeSymbol)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonCreateErrorNamespaceSymbol(INamespaceSymbol, String)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonCreateErrorTypeSymbol(INamespaceOrTypeSymbol, String, Int32)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonCreateFunctionPointerTypeSymbol(ITypeSymbol, RefKind, ImmutableArray<ITypeSymbol>, ImmutableArray<RefKind>)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonCreateFunctionPointerTypeSymbol(ITypeSymbol, RefKind, ImmutableArray<ITypeSymbol>, ImmutableArray<RefKind>, SignatureCallingConvention, ImmutableArray<INamedTypeSymbol>)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonCreateNativeIntegerTypeSymbol(Boolean)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonCreatePointerTypeSymbol(ITypeSymbol)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonCreateTupleTypeSymbol(ImmutableArray<ITypeSymbol>, ImmutableArray<String>, ImmutableArray<Location>)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonCreateTupleTypeSymbol(ImmutableArray<ITypeSymbol>, ImmutableArray<String>, ImmutableArray<Location>, ImmutableArray<NullableAnnotation>)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonCreateTupleTypeSymbol(INamedTypeSymbol, ImmutableArray<String>, ImmutableArray<Location>)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonCreateTupleTypeSymbol(INamedTypeSymbol, ImmutableArray<String>, ImmutableArray<Location>, ImmutableArray<NullableAnnotation>)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonGetAssemblyOrModuleSymbol(MetadataReference)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonGetCompilationNamespace(INamespaceSymbol)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonGetEntryPoint(CancellationToken)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonGetSemanticModel(SyntaxTree, Boolean)

SemanticModel获取给定 syntaxTree的 。 如果 Microsoft.CodeAnalysis.Compilation.SemanticModelProvider 为非 null,则尝试使用 Microsoft.CodeAnalysis.SemanticModelProvider.GetSemanticModel(Microsoft.CodeAnalysis.SyntaxTree,Microsoft.CodeAnalysis.Compilation,System.Boolean) 来获取语义模型。 否则,它会使用 Microsoft.CodeAnalysis.Compilation.CreateSemanticModel(Microsoft.CodeAnalysis.SyntaxTree,System.Boolean)创建新的语义模型。

(继承自 Compilation)
CommonGetSpecialType(SpecialType)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonGetTypeByMetadataName(String)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonRemoveAllSyntaxTrees()

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonRemoveSyntaxTrees(IEnumerable<SyntaxTree>)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonReplaceSyntaxTree(SyntaxTree, SyntaxTree)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonWithAssemblyName(String)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonWithOptions(CompilationOptions)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
CommonWithReferences(IEnumerable<MetadataReference>)

使用指定的引用创建新的编译。

(继承自 Compilation)
CommonWithScriptCompilationInfo(ScriptCompilationInfo)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
ContainsSymbolsWithName(Func<String,Boolean>, SymbolFilter, CancellationToken)

如果有满足给定谓词的源声明符号名称,则返回 true。

ContainsSymbolsWithName(String, SymbolFilter, CancellationToken)

如果源声明符号名称与提供的名称匹配,则返回 true。 这可能比ContainsSymbolsWithName(Func<String,Boolean>, SymbolFilter, CancellationToken)谓词只是一个简单字符串检查更快。 name 不区分大小写。

ContainsSyntaxTree(SyntaxTree)

是否在此编译中传入语法树?

Create(String, IEnumerable<SyntaxTree>, IEnumerable<MetadataReference>, VisualBasicCompilationOptions)

从头开始创建新的编译。

CreateAnonymousTypeSymbol(ImmutableArray<ITypeSymbol>, ImmutableArray<String>, ImmutableArray<Boolean>, ImmutableArray<Location>)

返回具有给定成员类型、名称和源位置的新匿名类型符号。 默认情况下,匿名类型成员是只读的。 VB 中支持可写属性,可以通过在 false 中的 memberIsReadOnly适当位置传入 来创建。

(继承自 Compilation)
CreateAnonymousTypeSymbol(ImmutableArray<ITypeSymbol>, ImmutableArray<String>, ImmutableArray<Boolean>, ImmutableArray<Location>, ImmutableArray<NullableAnnotation>)

返回一个新的匿名类型符号,其中包含给定的成员类型、名称、源位置和可为 null 的注释。 默认情况下,匿名类型成员是只读的。 VB 中支持可写属性,可以通过在 false 中的 memberIsReadOnly适当位置传入 来创建。

(继承自 Compilation)
CreateArrayTypeSymbol(ITypeSymbol, Int32)

返回一个新的 ArrayTypeSymbol,表示与此编译中的 COR 库基类型绑定的数组类型。

(继承自 Compilation)
CreateArrayTypeSymbol(ITypeSymbol, Int32, NullableAnnotation)

返回一个新的 ArrayTypeSymbol,表示与此编译中的 COR 库基类型绑定的数组类型。

(继承自 Compilation)
CreateBuiltinOperator(String, ITypeSymbol, ITypeSymbol)

为一IMethodSymbol元运算符创建一BuiltinOperatorMethodKind个 。 内置运算符通常为语言隐式支持的符号 bool int.operator -(int value) 创建,即使源或元数据中未为该类型显式定义此类符号也是如此。

(继承自 Compilation)
CreateBuiltinOperator(String, ITypeSymbol, ITypeSymbol, ITypeSymbol)

创建一个 IMethodSymbol ,对于二元运算符,其 MethodKindBuiltinOperator 为 。 内置运算符通常为语言隐式支持的符号 bool int.operator ==(int v1, int v2) 创建,即使源或元数据中未为该类型显式定义此类符号也是如此。

(继承自 Compilation)
CreateDefaultWin32Resources(Boolean, Boolean, Stream, Stream)

创建使用默认 win32 资源填充的流。

(继承自 Compilation)
CreateErrorNamespaceSymbol(INamespaceSymbol, String)

返回一个新的 INamespaceSymbol,表示错误 (缺少具有给定名称的) 命名空间。

(继承自 Compilation)
CreateErrorTypeSymbol(INamespaceOrTypeSymbol, String, Int32)

返回一个新的 INamedTypeSymbol,它表示在给定的可选容器中具有给定名称和 arity 的错误类型。

(继承自 Compilation)
CreateFunctionPointerTypeSymbol(ITypeSymbol, RefKind, ImmutableArray<ITypeSymbol>, ImmutableArray<RefKind>)

返回一个新的 IFunctionPointerTypeSymbol,表示绑定到此编译中的类型的函数指针类型。

(继承自 Compilation)
CreateFunctionPointerTypeSymbol(ITypeSymbol, RefKind, ImmutableArray<ITypeSymbol>, ImmutableArray<RefKind>, SignatureCallingConvention, ImmutableArray<INamedTypeSymbol>)

返回一个新的 IFunctionPointerTypeSymbol,表示绑定到此编译中的类型的函数指针类型。

(继承自 Compilation)
CreateNativeIntegerTypeSymbol(Boolean)

返回表示本机整数的新 INamedTypeSymbol。

(继承自 Compilation)
CreatePointerTypeSymbol(ITypeSymbol)

返回一个新的 IPointerTypeSymbol,表示与此编译中的类型绑定的指针类型。

(继承自 Compilation)
CreateTupleTypeSymbol(ImmutableArray<ITypeSymbol>, ImmutableArray<String>, ImmutableArray<Location>)

返回具有给定元素类型、名称和位置的新 INamedTypeSymbol。

(继承自 Compilation)
CreateTupleTypeSymbol(ImmutableArray<ITypeSymbol>, ImmutableArray<String>, ImmutableArray<Location>, ImmutableArray<NullableAnnotation>)

返回一个新的 INamedTypeSymbol,其中包含给定的元素类型和 (可选的) 元素名称、位置和可为空批注。

(继承自 Compilation)
CreateTupleTypeSymbol(INamedTypeSymbol, ImmutableArray<String>, ImmutableArray<Location>)

返回具有给定基础类型和元素名称和位置的新 INamedTypeSymbol。 基础类型需要与元组兼容。

(继承自 Compilation)
CreateTupleTypeSymbol(INamedTypeSymbol, ImmutableArray<String>, ImmutableArray<Location>, ImmutableArray<NullableAnnotation>)

返回一个新的 INamedTypeSymbol,其中包含给定的基础类型和 (可选的) 元素名称、位置和可为空批注。 基础类型需要与元组兼容。

(继承自 Compilation)
Emit(Stream, Stream, Stream, Stream, IEnumerable<ResourceDescription>, EmitOptions, CancellationToken)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
Emit(Stream, Stream, Stream, Stream, IEnumerable<ResourceDescription>, EmitOptions, IMethodSymbol, CancellationToken)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
Emit(Stream, Stream, Stream, Stream, IEnumerable<ResourceDescription>, EmitOptions, IMethodSymbol, Stream, IEnumerable<EmbeddedText>, CancellationToken)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)
Emit(Stream, Stream, Stream, Stream, IEnumerable<ResourceDescription>, EmitOptions, IMethodSymbol, Stream, IEnumerable<EmbeddedText>, Stream, CancellationToken)

将编译的源代码的 IL 发送到指定的流中。

(继承自 Compilation)
EmitDifference(EmitBaseline, IEnumerable<SemanticEdit>, Func<ISymbol,Boolean>, Stream, Stream, Stream, CancellationToken)

发出编译与上一代的“编辑并继续”之间的差异。 差异表示为添加符号和更改符号,并作为元数据、IL 和 PDB 增量发出。 当前编译的表示形式作为 EmitBaseline 返回,以便在后续的“编辑并继续”中使用。

(继承自 Compilation)
EmitDifference(EmitBaseline, IEnumerable<SemanticEdit>, Func<ISymbol, Boolean>, Stream, Stream, Stream, ICollection<MethodDefinitionHandle>, CancellationToken)
已过时.

发出编译与上一代的“编辑并继续”之间的差异。 差异表示为添加符号和更改符号,并作为元数据、IL 和 PDB 增量发出。 当前编译的表示形式作为 EmitBaseline 返回,以便在后续的“编辑并继续”中使用。

(继承自 Compilation)
EmitDifference(EmitBaseline, IEnumerable<SemanticEdit>, Stream, Stream, Stream, ICollection<MethodDefinitionHandle>, CancellationToken)
已过时.

发出编译与上一代的“编辑并继续”之间的差异。 差异表示为添加符号和更改符号,并作为元数据、IL 和 PDB 增量发出。 当前编译的表示形式作为 EmitBaseline 返回,以便在后续的“编辑并继续”中使用。

(继承自 Compilation)
GetAssemblyOrModuleSymbol(MetadataReference)

IAssemblySymbol获取 用于创建此编译的元数据引用的 或 IModuleSymbol

(继承自 Compilation)
GetCompilationNamespace(INamespaceSymbol)

获取指定模块或程序集命名空间的相应编译命名空间。

(继承自 Compilation)
GetDeclarationDiagnostics(CancellationToken)

获取整个编译诊断声明。 这包括来自声明的诊断,但不包括方法或初始值设定项的主体。 缓存声明诊断集,因此第二次调用此方法的速度应该很快。

GetDiagnostics(CancellationToken)

获取整个编译的所有诊断。 这包括分析、声明和方法主体中的诊断。 获取所有诊断可能是一个长度操作,因为它需要分析和编译所有代码。 诊断集不是缓存,因此每次调用此方法都会重新编译所有方法。

GetEntryPoint(CancellationToken)

返回 Main 方法,如果它是可执行 (而不是脚本) ,则它将用作程序集的入口点。

(继承自 Compilation)
GetMetadataReference(IAssemblySymbol)

MetadataReference获取对应于程序集符号的 。

(继承自 Compilation)
GetMethodBodyDiagnostics(CancellationToken)

获取整个编译的方法主体诊断。 这包括仅从方法和初始值设定项的主体诊断。 这些诊断不会缓存,因此再次调用此方法会重复大量工作。

GetParseDiagnostics(CancellationToken)

获取整个编译的解析诊断。 这包括诊断分析,但不是从声明和方法或初始值设定项的主体。 缓存了分析诊断集,因此第二次调用此方法的速度应该很快。

GetSemanticModel(SyntaxTree, Boolean)

获取新的 SemanticModel。 请注意,每次调用都会获得一个新的 SemanticModel,其中每个调用都有一个缓存。 因此,通过放弃 SemanticModel 可以有效地清除缓存。

GetSpecialType(SpecialType)

从此编译引用的 Cor 库获取预定义类型的符号。

(继承自 Compilation)
GetSymbolsWithName(Func<String,Boolean>, SymbolFilter, CancellationToken)

返回名称符合给定谓词的源声明符号。

GetSymbolsWithName(String, SymbolFilter, CancellationToken)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

GetTypeByMetadataName(String)

获取编译程序集中的类型,以及所有引用的程序集 (,这些程序集只能通过外部别名) 使用其规范 CLR 元数据名称进行引用。 此查找遵循以下顺序:

  1. 如果在编译的程序集中找到该类型,则返回该类型。
  2. 接下来,核心库 (定义 System.Object 且没有程序集引用的库,) 搜索。 如果在此处找到该类型,则返回该类型。
  3. 最后,搜索所有剩余引用的非外部程序集。 如果找到与提供的元数据名称匹配的一个类型,则返回该类型。 对于此检查,将忽略辅助功能。
(继承自 Compilation)
GetTypesByMetadataName(String)

获取具有编译程序集的所有类型,以及具有给定规范 CLR 元数据名称的所有引用程序集。 搜索匹配的类型名称时,将忽略当前程序集的辅助功能。

(继承自 Compilation)
GetUnreferencedAssemblyIdentities(Diagnostic)

Diagnostic给定报表未引用 AssemblyIdentity的 ,返回未引用的实际AssemblyIdentity实例。

(继承自 Compilation)
GetUsedAssemblyReferences(CancellationToken)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

GetUsedAssemblyReferences(CancellationToken)

此编译认为使用的唯一元数据程序集引用。 例如,如果引用程序集中声明的类型在此编译的源代码中引用,则认为该引用被使用。 等。返回的集是 API 返回的 References 引用的子集。 如果编译包含错误,则结果为未定义。

导入命名空间对此 API 结果的影响取决于是否为编译禁用了未使用的导入的报告。 如果 DocumentationMode 设置为 None,则禁用未使用的导入的报告。

禁用未使用的导入报告时,包含属于导入命名空间的任何类型的引用程序集都会包含在结果中。 即认为已使用。

启用未使用的导入报告后,导入的命名空间不会对此 API 的结果产生影响。 因此,删除结果中没有的程序集引用可能会导致错误“CS0246:找不到类型或命名空间名称, (缺少 using 指令或程序集引用?) ”在未使用的命名空间导入。 但是,编译器会将该导入报告为调用此 API 的编译未使用。 为了避免错误,建议同时删除未使用的程序集引用和未使用的导入。

(继承自 Compilation)
HasImplicitConversion(ITypeSymbol, ITypeSymbol)

如果存在隐式 (C#) 或扩大 (VB) 转换,则fromTypetoType返回 true。 如果 或 toTypefromType null,或者不存在此类转换,则返回 false。

(继承自 Compilation)
IsSymbolAccessibleWithin(ISymbol, ISymbol, ITypeSymbol)

检查是否 symbol 可从 中 within访问。 类型的 throughType 可选限定符用于解析实例成员的受保护访问。 所有符号都必须来自此编译或 (此编译) References 引用的某些程序集。 within 必须是 INamedTypeSymbolIAssemblySymbol

(继承自 Compilation)
RemoveAllReferences()

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

RemoveAllSyntaxTrees()

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

RemoveReferences(IEnumerable<MetadataReference>)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

RemoveReferences(MetadataReference[])

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

RemoveSyntaxTrees(IEnumerable<SyntaxTree>)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

RemoveSyntaxTrees(SyntaxTree[])

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

ReplaceReference(MetadataReference, MetadataReference)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

ReplaceSyntaxTree(SyntaxTree, SyntaxTree)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

SupportsRuntimeCapability(RuntimeCapability)

确定此 Compilation 目标运行时是否支持特定功能。

(继承自 Compilation)
ToMetadataReference(ImmutableArray<String>, Boolean)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

WithAssemblyName(String)

创建具有指定名称的新编译。

WithOptions(CompilationOptions)

使用指定的编译选项创建新的编译。

(继承自 Compilation)
WithOptions(VisualBasicCompilationOptions)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

WithReferences(IEnumerable<MetadataReference>)

使用指定的引用创建新的编译。

WithReferences(MetadataReference[])

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

WithScriptCompilationInfo(ScriptCompilationInfo)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

(继承自 Compilation)

扩展方法

ClassifyConversion(Compilation, ITypeSymbol, ITypeSymbol)

Compilation 对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,即编译可以快速创建,但会编译器部分或所有代码以响应方法或属性。 此外,编译可以生成与当前编译略有变化的新编译。 在许多情况下,这比从头开始创建新编译更有效,因为新编译可以共享旧编译中的信息。

WithAnalyzers(Compilation, ImmutableArray<DiagnosticAnalyzer>, AnalyzerOptions)

返回具有附加诊断分析器的新编译。

WithAnalyzers(Compilation, ImmutableArray<DiagnosticAnalyzer>, AnalyzerOptions, CancellationToken)
已过时.

返回具有附加诊断分析器的新编译。

WithAnalyzers(Compilation, ImmutableArray<DiagnosticAnalyzer>, CompilationWithAnalyzersOptions)

返回具有附加诊断分析器的新编译。

Emit(Compilation, String, String, String, String, IEnumerable<ResourceDescription>, CancellationToken)

将编译的 IL 发送到指定的流中。

AliasImports(Compilation)

获取编译 AliasImports 属性。

ClassifyConversion(Compilation, ITypeSymbol, ITypeSymbol)

确定指定类型之间的转换类型。

GetSpecialType(Compilation, SpecialType)

获取当前编译中的特殊类型符号。

MemberImports(Compilation)

获取编译 MemberImports 属性。

RootNamespace(Compilation)

获取编译 RootNamespace 属性。

适用于