CSharpCompilation 类

定义

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

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

字段

_features

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

(继承自 Compilation)

属性

Assembly

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

(继承自 Compilation)
AssemblyName

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

(继承自 Compilation)
CommonAssembly

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

(继承自 Compilation)
CommonDynamicType

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

(继承自 Compilation)
CommonGlobalNamespace

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

(继承自 Compilation)
CommonObjectType

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

(继承自 Compilation)
CommonOptions

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

(继承自 Compilation)
CommonScriptClass

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

(继承自 Compilation)
CommonScriptGlobalsType

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

(继承自 Compilation)
CommonSourceModule

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

(继承自 Compilation)
CommonSyntaxTrees

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

(继承自 Compilation)
DirectiveReferences

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

DynamicType

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

(继承自 Compilation)
ExternalReferences

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

(继承自 Compilation)
GlobalNamespace

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

(继承自 Compilation)
IsCaseSensitive

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

Language

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

LanguageVersion

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

ObjectType

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

(继承自 Compilation)
Options

创建编译时所使用的选项。

ReferencedAssemblyNames

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

References

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

(继承自 Compilation)
ScriptClass

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

(继承自 Compilation)
ScriptCompilationInfo

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

SourceModule

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

(继承自 Compilation)
SyntaxTrees

语法树 (从创建此编译时使用的源代码) 进行分析。

方法

AddReferences(IEnumerable<MetadataReference>)

使用其他元数据引用创建新的编译。

AddReferences(MetadataReference[])

使用其他元数据引用创建新的编译。

AddSyntaxTrees(IEnumerable<SyntaxTree>)

使用其他语法树创建新的编译。

AddSyntaxTrees(SyntaxTree[])

使用其他语法树创建新的编译。

AppendDefaultVersionResource(Stream)

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

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

根据此编译的编程语言将从 sourcedestination 的转换进行分类。

ClassifyConversion(ITypeSymbol, ITypeSymbol)

将从 sourcedestination的转换分类。

Clone()

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

CommonAddSyntaxTrees(IEnumerable<SyntaxTree>)

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

(继承自 Compilation)
CommonBindScriptClass()

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

(继承自 Compilation)
CommonClone()

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

(继承自 Compilation)
CommonContainsSyntaxTree(SyntaxTree)

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

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

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

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

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

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

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

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

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

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

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

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

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

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

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

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

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

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

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

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

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

(继承自 Compilation)
CommonCreateNativeIntegerTypeSymbol(Boolean)

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

(继承自 Compilation)
CommonCreatePointerTypeSymbol(ITypeSymbol)

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

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

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

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

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

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

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

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

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

(继承自 Compilation)
CommonGetAssemblyOrModuleSymbol(MetadataReference)

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

(继承自 Compilation)
CommonGetCompilationNamespace(INamespaceSymbol)

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

(继承自 Compilation)
CommonGetEntryPoint(CancellationToken)

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

(继承自 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)
CommonGetTypeByMetadataName(String)

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

(继承自 Compilation)
CommonRemoveAllSyntaxTrees()

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

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

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

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

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

(继承自 Compilation)
CommonWithAssemblyName(String)

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

(继承自 Compilation)
CommonWithOptions(CompilationOptions)

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

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

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

(继承自 Compilation)
CommonWithScriptCompilationInfo(ScriptCompilationInfo)

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

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

如果源声明符号名称符合给定谓词,则返回 true。

ContainsSymbolsWithName(String, SymbolFilter, CancellationToken)

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

ContainsSyntaxTree(SyntaxTree)

如果此编译包含指定的树,则返回 true。 否则为 False。

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

从头开始创建新的编译。 返回的对象上的 AddSyntaxTrees 或 AddReferences 等方法将允许继续以增量方式构建编译。

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)
CreateScriptCompilation(String, SyntaxTree, IEnumerable<MetadataReference>, CSharpCompilationOptions, CSharpCompilation, Type, Type)

创建可用于脚本编写的新编译。

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)
Emit(Stream, Stream, Stream, Stream, IEnumerable<ResourceDescription>, EmitOptions, IMethodSymbol, CancellationToken)

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

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

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

(继承自 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)

获取编译的所有诊断,包括语法、声明和绑定。 不包括在发出期间可能生成的任何诊断。

GetDirectiveReference(ReferenceDirectiveTriviaSyntax)

返回给定 #r 解析到的元数据引用。

GetEntryPoint(CancellationToken)

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

(继承自 Compilation)
GetMetadataReference(IAssemblySymbol)

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

GetMethodBodyDiagnostics(CancellationToken)

获取分析方法主体和字段初始值设定项期间生成的诊断。

GetParseDiagnostics(CancellationToken)

获取在编译分析阶段生成的诊断。 例如,声明、访问器或方法主体没有诊断。

GetSemanticModel(SyntaxTree, Boolean)

获取指定语法树的新 SyntaxTreeSemanticModel。

GetSpecialType(SpecialType)

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

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

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

GetSymbolsWithName(String, SymbolFilter, CancellationToken)

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

GetTypeByMetadataName(String)

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

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

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

(继承自 Compilation)
GetUnreferencedAssemblyIdentities(Diagnostic)

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

(继承自 Compilation)
GetUsedAssemblyReferences(CancellationToken)

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

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()

创建没有任何元数据引用的新编译

RemoveAllSyntaxTrees()

创建没有任何语法树的新编译。 保留此编译中的元数据信息,以便用于稍后添加的树。

RemoveReferences(IEnumerable<MetadataReference>)

创建不包含指定元数据引用的新编译。

RemoveReferences(MetadataReference[])

创建不包含指定元数据引用的新编译。

RemoveSyntaxTrees(IEnumerable<SyntaxTree>)

创建没有指定语法树的新编译。 保留元数据信息,供稍后添加的树使用。

RemoveSyntaxTrees(SyntaxTree[])

创建没有指定语法树的新编译。 保留元数据信息,供稍后添加的树使用。

ReplaceReference(MetadataReference, MetadataReference)

创建一个新的编译,其中旧元数据引用替换为新的元数据引用。

ReplaceSyntaxTree(SyntaxTree, SyntaxTree)

使用新树创建一个新的编译,而不使用旧树。

SupportsRuntimeCapability(RuntimeCapability)

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

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

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

WithAssemblyName(String)

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

WithOptions(CompilationOptions)

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

(继承自 Compilation)
WithOptions(CSharpCompilationOptions)

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

WithReferences(IEnumerable<MetadataReference>)

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

WithReferences(MetadataReference[])

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

WithScriptCompilationInfo(CSharpScriptCompilationInfo)

返回一个新的编译,其中给定的编译集作为上一个提交。

WithScriptCompilationInfo(ScriptCompilationInfo)

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

(继承自 Compilation)

扩展方法

ClassifyConversion(Compilation, ITypeSymbol, ITypeSymbol)

编译对象是编译器的单个调用的不可变表示形式。 虽然不可变,但编译也是按需的,并将根据需要实现和缓存数据。 编译可以通过应用小增量从现有编译生成新的编译。 在许多情况下,它比从头开始创建新编译更高效,因为新编译可以重用旧编译中的信息。

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

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

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 属性。

适用于