Microsoft.CodeAnalysis 命名空间

AdditionalDocument

表示传递给分析器的其他文件。

AdditionalText

表示非源代码文件。

AdhocWorkspace

允许完全操作项目和文档,但不保留更改的工作区。

AnalyzerConfig

表示单个 EditorConfig 文件,有关格式的详细信息,请参阅 https://editorconfig.org

AnalyzerConfig.Section

表示 editorconfig 文件的命名节,其中包含一个名称,后跟一组键值对。

AnalyzerConfigDocument
AnalyzerConfigSet

表示一组 AnalyzerConfig,可以计算给定源文件的有效分析器选项。 这用于收集将应用于编译的所有 AnalyzerConfig 文件。

AnnotationExtensions
AssemblyIdentity

表示由 CLI 元数据规范定义的程序集的标识。

AssemblyIdentityComparer

比较程序集标识。 派生类型可以实现特定于平台的统一和可移植性策略。

AssemblyMetadata

表示程序集 CLI 元数据的不可变快照。

AttributeData
CaseInsensitiveComparison

不区分大小写的操作 (主要比较 unicode 字符串上的) 。

CodeAnalysisProgress

表示操作的进度。 通常用于在长时间运行的操作发生时更新用户可见的 UI。

CommandLineArguments

用于表示 的命令行参数的 Microsoft.CodeAnalysis.CommonCompiler基类。

CommandLineParser
CommandLineProject
Compilation

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

CompilationOptions

表示 C# 和 VB 通用的编译选项。

CompilationReference

对另一个 C# 或 VB 编译的引用。

ControlFlowAnalysis

提供有关在区域传入和传出控制权的语句的信息。 此信息是通过对 的调用返回的 Microsoft.CodeAnalysis.SemanticModel.AnalyzeControlFlow(Microsoft.CodeAnalysis.SyntaxNode)

CSharpExtensions
CustomModifier
DataFlowAnalysis

提供有关数据如何流入和流出区域的信息。 此信息是从对 Microsoft.CodeAnalysis.SemanticModel.AnalyzeDataFlow(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SyntaxNode)的调用中返回的,或者从其特定于语言的重载之一返回的,在该重载中,你将该区域的第一个和最后一个语句作为参数传递。 “Inside”是指这些语句或它们之间的语句。 “Outside”是同一方法的任何其他语句。

DesktopAssemblyIdentityComparer
DesktopStrongNameProvider

提供强名称和对源程序集进行签名。

Diagnostic

表示诊断,例如编译器错误或警告,以及出现该诊断的位置。

DiagnosticDescriptor

提供有关 的说明 Diagnostic

DiagnosticFormatter

设置消息格式 Diagnostic

DllImportData

描述如何调用基础平台中的方法的信息。

Document

表示属于项目的源代码文档。 它提供对源文本、分析语法树和相应语义模型的访问。

DocumentActiveContextChangedEventArgs
DocumentationCommentId

用于构造文档注释 ID 和查找与 ID 匹配的符号的 API。

DocumentationProvider

一个类,用于向编译器提供元数据成员的 XML 文档。 此类的自定义实现应从 DocumentationResolver 返回,以提供来自自定义缓存或位置的 XML 文档注释。

DocumentDiagnostic
DocumentEventArgs
DocumentId

可用于跨工作区版本检索相同 Document 值的标识符。

DocumentInfo

一个类,表示创建新文档实例所需的所有参数。

EmbeddedText

表示要嵌入 PDB 中的文本。

ErrorLogOptions

控制生成包含编译或分析器诊断的 SARIF 日志文件的选项。

ExtensionOrderAttribute
FileSystemExtensions
FileTextLoader
GeneratorAttribute

将此属性置于类型上,使其被视为源生成器

GeneratorDriver

负责协调源生成传递

GeneratorDriverRunResult

表示在一组 ISourceGenerator上运行生成传递的结果。

GeneratorExtensions
IncrementalGeneratorRunStep

已执行的增量生成器步骤的说明。

IncrementalValueProviderExtensions
ISymbolExtensions
LanguageNames

为公共语言名称提供常量的类。

LocalizableResourceString

可本地化的资源字符串,可能根据区域性以不同的格式设置。

LocalizableString

可能根据区域性以不同方式设置格式的字符串。 注意:实现 LocalizableString 的类型必须是可序列化的。

Location

源代码中的程序位置。

Metadata

表示不可变程序集或模块 CLI 元数据。

MetadataId

可用于标识元数据实例的 ID。 如果两个元数据实例具有相同的 ID,则保证它们具有相同的内容。 如果两个元数据实例具有不同的 ID,则内容可能相同,也可能不同。 因此,当客户端想要共享元数据引用的数据时,只要该数据未更改,ID 就可作为缓存中的键。

MetadataReference

表示元数据图像引用。

MetadataReferenceResolver

解析对源 (#r 指令) 中指定的元数据的引用。

ModelExtensions
ModuleMetadata

表示模块 CLI 元数据的不可变快照。

NullableContextExtensions
NullableContextOptionsExtensions
ParseOptions

表示 C# 和 VB 通用的解析选项。

PortableExecutableReference

对以标准 ECMA-335 元数据格式存储的元数据的引用。

Project

表示属于 的项目 Solution

ProjectDependencyGraph

ProjectDependencyGraph 解决方案中项目之间的依赖关系建模。

ProjectDiagnostic
ProjectId

可用于跨版本引用相同 Project 的标识符。

ProjectInfo

一个类,表示创建新项目实例所需的所有参数。

ProjectReference
ResourceDescription

其内容将嵌入到输出程序集中的资源的表示形式。

RuleSet

表示规则集文件中指定的一组规则。

RuleSetInclude

表示 RuleSet 文件中的 Include 标记。

SarifVersionFacts
ScriptCompilationInfo
SemanticModel

允许询问有关编译中语法节点树的语义问题。 通常,实例是通过调用编译或编译上的 GetBinding 获取的。

Solution

表示一组项目及其源代码文档。

SolutionId

可用于跨版本引用同一解决方案的标识符。

SolutionInfo

一个类,表示创建新解决方案实例所需的所有参数。

SourceFileResolver

解析对源代码中指定的源文件的引用。

SourceGeneratedDocument

DocumentISourceGenerator生成的 。

SourceReferenceResolver

解析对源中指定的源文档的引用。

StrongNameProvider

提供强名称和对源程序集进行签名。

SuppressionDescriptor

提供有关 的编程抑制 Diagnostic 的说明 DiagnosticSuppressor

SymbolDisplayExtensions

公开用于显示符号说明的扩展方法。

SymbolDisplayFormat

描述显示符号时应使用的格式规则。

SymbolEqualityComparer

允许比较两 ISymbol 个实例

SymbolVisitor
SymbolVisitor<TResult>
SymbolVisitor<TArgument,TResult>
SyntaxAnnotation

SyntaxAnnotation 用于为语法元素添加附加信息的批注。

由于语法元素是不可变的,因此批注它们需要创建带有附加注释的新实例。

SyntaxNode

表示语法树中的非终端节点。 这是 与 语言无关的等效项CSharpSyntaxNodeVisualBasicSyntaxNode

SyntaxNodeExtensions
SyntaxReference

对语法节点的引用。

SyntaxTree

源文档的已分析表示形式。

SyntaxTreeOptionsProvider
SyntaxWalker

遍行语法树,允许子类在所有节点、令牌和琐事上操作。 步行者将首先对树执行深度行走。

TextAndVersion

一个表示源文本及其版本标记的类。

TextDocument
TextDocumentEventArgs
TextLoader

表示从存储位置访问源文本及其版本的类。

UnresolvedMetadataReference

表示无法解析或尚未解析的元数据引用。

VisualBasicExtensions

添加 Visual Basic 语法扩展方法。

WellKnownDiagnosticTags
WellKnownGeneratorInputs

已知的增量生成器输入步骤名称。

WellKnownGeneratorOutputs

已知的增量生成器输出步骤名称。

WellKnownMemberNames

指定编译器 (已知的成员名称,例如 .ctorop_Explicit) 。

Workspace

工作区提供对一组活动源代码项目和文档及其关联的语法树、编译和语义模型的访问权限。 工作区具有当前解决方案,它是项目和文档的不可变快照。 当工作区从环境中的实时交互或通过调用工作区 TryApplyChanges(Solution) 的 方法进行更新时,此属性可能会随时间而更改。

WorkspaceChangeEventArgs

描述 EventArgs 任何类型的工作区更改的 。

WorkspaceDiagnostic
WorkspaceDiagnosticEventArgs
WorkspaceKind

已知工作区类型

WorkspaceRegistration
XmlDocumentationProvider

一个类,用于向编译器提供来自 XML 文档源的元数据的成员的 XML 文档。

XmlFileResolver

解析对源中指定的 XML 文件的引用。

XmlReferenceResolver

解析对源代码中指定的 XML 文档的引用。

结构

AnalyzerConfig.SectionNameMatcher
AnalyzerConfigOptionsResult

保存 来自 GetOptionsForSourcePath(String)的结果。

ChildSyntaxList
ChildSyntaxList.Enumerator

枚举 ChildSyntaxList 的元素。

ChildSyntaxList.Reversed
ChildSyntaxList.Reversed.Enumerator
CommandLineAnalyzerReference

描述命令行分析器程序集规范。

CommandLineReference

描述命令行元数据引用 (程序集或 netmodule) 规范。

CommandLineSourceFile

描述存储在命令行参数上的源文件规范。

CompilationOutputInfo

编译生成的文件的路径。

FileLinePositionSpan

表示源代码文件中按文件名、行号和行内偏移量的文本范围。 但是,文件实际上是在要求分析时传入的任何文件;可能没有真正的文件。

GeneratedSourceResult

表示调用 AddSource(String, SourceText)的结果ISourceGenerator

GeneratedSourceText

由 创建的源文本 ISourceGenerator

GeneratorAttributeSyntaxContext
GeneratorDriverOptions

创建期间传递给 的选项GeneratorDriver

GeneratorDriverTimingInfo

包含完整代传递的计时信息。

GeneratorExecutionContext

调用 时 Execute(GeneratorExecutionContext) 传递给源生成器的上下文

GeneratorInitializationContext

调用 时 Initialize(GeneratorInitializationContext) 传递给源生成器的上下文

GeneratorPostInitializationContext

通过 选择加入 PostInitialization 时传递给源生成器的上下文 RegisterForPostInitialization(Action<GeneratorPostInitializationContext>)

GeneratorRunResult

表示单个 ISourceGenerator 生成传递的结果。

GeneratorSyntaxContext

调用 时OnVisitSyntaxNode(GeneratorSyntaxContext)传递给 的ISyntaxContextReceiver上下文

GeneratorTimingInfo

包含单个生成器的计时信息。

ImportedNamespaceOrType

表示 INamespaceOrTypeSymbol 已导入的 ,以及声明导入的位置。 这对应于 using Namespace; C# 中的 或 using static Type; Visual Basic 中的 或 Imports TypeOrNamespace

ImportedXmlNamespace

表示导入的 xml 命名空间名称。 这对应于 Imports <xmlns:prefix = "name"> Visual Basic 中的 。 C# 不存在它。

IncrementalGeneratorInitializationContext

调用 时 Initialize(IncrementalGeneratorInitializationContext) 传递给增量生成器的上下文

IncrementalGeneratorPostInitializationContext

通过 注册输出时传递给增量生成器的上下文 RegisterPostInitializationOutput(Action<IncrementalGeneratorPostInitializationContext>)

IncrementalValueProvider<TValue>

表示单个值的提供程序,该值可在构造执行管道时进行转换

IncrementalValuesProvider<TValues>

表示多个值的提供程序,这些值可以转换以构造执行管道

InitializationContext

调用 时 Initialize(InitializationContext) 传递给源生成器的上下文

IOperation.OperationList

实现基于结构的节点集合 Microsoft.CodeAnalysis.Operation 。 此集合是有序的,但不提供对该集合的随机访问。

IOperation.OperationList.Enumerator

Microsoft.CodeAnalysis.Operation 节点实现基于结构的枚举器。 此类型未强化为 default(Enumerator),在这些情况下将为 null 引用。 在 返回 false 后MoveNext()调用 Current 将引发 InvalidOperationException

IOperation.OperationList.Reversed

实现基于反向顺序结构的节点集合 Microsoft.CodeAnalysis.Operation 。 此集合是有序的,但不提供对该集合的随机访问。

IOperation.OperationList.Reversed.Enumerator

Microsoft.CodeAnalysis.Operation 节点实现基于反向顺序结构的枚举器。 此类型未强化为 default(Enumerator),在这些情况下将为 null 引用。 在 返回 false 后MoveNext()调用 Current 将引发 InvalidOperationException

LineMapping

表示由 C# 或 #ExternalSource VB) 中 (#line 单行映射指令定义的行映射。

LoadTextOptions

用于加载 SourceText的选项。

MetadataReferenceProperties

有关元数据引用的信息。

NullabilityInfo
Optional<T>

将值 Value和 标志组合在一起, HasValue指示该值是否有意义。

PreprocessingSymbolInfo
ProjectChanges
SeparatedSyntaxList<TNode>.Enumerator
SeparatedSyntaxList<TNode>
SolutionChanges
SourceGeneratorContext

调用 时 Execute(SourceGeneratorContext) 传递给源生成器的上下文

SourceProductionContext

通过 注册输出时传递给增量生成器的上下文 RegisterSourceOutput<TSource>(IncrementalValueProvider<TSource>, Action<SourceProductionContext,TSource>)

SubsystemVersion

表示子系统版本,有关详细信息和有效值,请参阅 /subsystemversion 命令行选项。

下表列出了常见的 Windows 子系统版本。

Windows 版本子系统版本

  • Windows 2000 5.00
  • Windows XP 5.01
  • Windows Vista 6.00
  • Windows 7 6.01
  • Windows 8 Release Preview 6.02
SymbolDisplayPart

符号说明的单个元素。 例如,关键字 (keyword) 、标点符号字符或类名。

SymbolInfo
SyntaxList<TNode>.Enumerator
SyntaxList<TNode>

SyntaxNode 的列表。

SyntaxNodeOrToken

语法节点 () SyntaxNode 或语法标记的包装器, SyntaxToken () 。

SyntaxNodeOrTokenList

结构列表 SyntaxNodeOrToken

SyntaxNodeOrTokenList.Enumerator

SyntaxNodeOrToken 结构列表的枚举器。

SyntaxToken

表示语法树中的标记。

SyntaxTokenList

表示 的 SyntaxToken只读列表。

SyntaxTokenList.Enumerator

用于枚举 的 结构 SyntaxTokenList

SyntaxTokenList.Reversed

反向枚举。

SyntaxTokenList.Reversed.Enumerator
SyntaxTrivia

表示语法树中的琐事。

SyntaxTriviaList

表示 的 SyntaxTrivia只读列表。

SyntaxTriviaList.Enumerator
SyntaxTriviaList.Reversed

反向枚举。

SyntaxTriviaList.Reversed.Enumerator
SyntaxValueProvider

允许用户为增量生成创建基于语法的输入节点

TypedConstant

表示用作自定义属性的参数的常量值。

TypeInfo
VersionStamp

VersionStamp 应仅用于比较同一 API 返回的版本。

接口

IAliasSymbol

表示在 Visual Basic) 中使用别名 (导入别名。

IAnalyzerAssemblyLoader

处理加载分析器程序集及其依赖项。

在使用 加载 LoadFromPath(String)分析器程序集之前,必须先通过调用 AddDependencyLocation(String)来指定其位置和所有依赖项的位置。

IArrayTypeSymbol

表示数组。

IAssemblySymbol

表示由一个或多个模块组成的 .NET 程序集。

ICompilationUnitSyntax

接口由作为 的根“CompilationUnit”的任何 SyntaxTree节点实现。 即,其中 HasCompilationUnitRoottrueGetRoot(CancellationToken) 返回的任何节点都将实现此接口。

此接口提供了一种常见方法,既可以轻松查找给定的任何 SyntaxNodeSyntaxTree根,也提供了处理将所有最终琐事SourceText存储在 不归任何其他 SyntaxToken拥有的 中所需的特殊EndOfFileToken方法。

IDiscardSymbol

表示已放弃值的符号,例如 GetSymbolInfo 结果中的M(out _)符号,用于 _(x, _) = e

IDynamicTypeSymbol

表示 C# 中的“动态”类型。

IErrorTypeSymbol

当编译器由于错误而无法确定要返回的符号对象时,将使用 IErrorTypeSymbol。 例如,如果字段声明为“Goo x;”,并且找不到类型“Goo”,则当询问字段“x”的类型时,将返回 IErrorTypeSymbol。

IEventSymbol

表示一个事件。

IFieldSymbol

表示类、结构或枚举中的字段。

IFunctionPointerTypeSymbol

表示函数指针类型,例如“delegate*<void>”。

IImportScope

表示导入到源文件中特定位置的符号集。 每个导入都具有对导入指令声明位置的引用。 IAliasSymbol对于导入,可以使用 或 DeclaringSyntaxReferencesIAliasSymbol 本身找到Locations位置。 对于 ImportsXmlNamespaces ,分别通过 DeclaringSyntaxReferenceDeclaringSyntaxReference 找到位置。

IIncrementalGenerator

实现增量生成器所需的基本接口

ILabelSymbol

表示方法主体中的标签

ILocalSymbol

表示方法主体中的局部变量。

IMethodSymbol

表示方法或类似方法的符号 (包括构造函数、析构函数、运算符或属性/事件访问器) 。

IModuleSymbol

表示程序集中的模块。 每个程序集都包含一个或多个模块。

INamedTypeSymbol

表示数组、指针、类型参数以外的类型。

INamespaceOrTypeSymbol

表示命名空间或类型。

INamespaceSymbol

表示命名空间。

IOperation

表示 C# 和 VB 语句和表达式的抽象语义的根类型。

IParameterSymbol

表示方法或属性的参数。

IPointerTypeSymbol

表示指针类型,例如“int *”。 指针类型仅在不安全的代码中使用。

IPreprocessingSymbol

表示预处理条件编译符号。

IPropertySymbol

表示属性或索引器。

IRangeVariableSymbol

表示查询表达式中的范围变量。

ISkippedTokensTriviaSyntax

表示包含跳过标记的结构化琐事。 这由 SkippedTokensTriviaSyntaxSkippedTokensTriviaSyntax实现。

ISourceAssemblySymbol

表示编译器公开的源程序集符号。

ISourceGenerator

实现源生成器所需的基接口

IStructuredTriviaSyntax

表示结构化琐碎树 (的根节点,例如预处理器指令或文档注释) 。 从此根节点可以遍历到包含它的外部树中的包含琐事。

ISupportedChangesService

可以使用 从 ServicesGetService<TWorkspaceService>()获取。

ISymbol

表示编译器公开 (命名空间、类、方法、参数等 ) 符号。

ISyntaxContextReceiver

接收编译中每个 SyntaxNode 的通知,以及
SemanticModel 在生成运行之前,可以查询以获取更多信息。

ISyntaxReceiver

在生成运行之前接收编译中每个 SyntaxNode 的通知

ITypeParameterSymbol

表示泛型类型或泛型方法中的类型参数。

ITypeSymbol

表示类型。

枚举

Accessibility

常见辅助功能组合的枚举。

ApplyChangesKind
AssemblyIdentityComparer.ComparisonResult

一组可能的比较结果 AssemblyIdentity

AssemblyIdentityParts
CandidateReason

指示在 SemanticInfo 中将候选 (或候选) 符号集视为正确的原因。 较高的值优先于较低值,因此,例如,如果某个符号的给定名称不可访问,而其他符号具有错误的 arity,则 SemanticInfo 中只会报告不可访问的符号。

DiagnosticSeverity

描述诊断的严重程度。

DocumentationMode

指定不同的文档注释处理模式。

GeneratedKind
IncrementalGeneratorOutputKind

表示 的各种输出类型 IIncrementalGenerator

IncrementalStepRunReason

给定执行的增量源生成器步骤的输出状态。

LineVisibility

线条可见性的状态。

LocationKind

指定源与元数据) (位置的类型。

MetadataImageKind

PE 文件映像包含的元数据类型。

MetadataImportOptions

指定要从元数据导入的符号。

MethodKind

可能的方法符号类型的枚举。

NamespaceKind

描述命名空间盘区的类型。

NullableAnnotation

表示可分配给用作左值的表达式的值的为 Null 性。

NullableContext

表示文件中特定点处的可为空分析的状态。 第一位和第二位对应于是否启用可为空功能。 位 3 和 4 对应于上下文是否继承自全局上下文。

NullableContextOptions

表示此编译中可为 null 分析的默认状态。

NullableFlowState

表示编译器对表达式是否为 null 的分析

OperationKind

所有类型的操作,包括 语句和表达式。

OptimizationLevel

确定生成的代码的优化级别。

OutputKind

指定编译器生成的输出程序集类型。

Platform
PreservationMode

保留值的模式。

RefKind

表示引用的类型。

ReportDiagnostic

介绍如何报告警告诊断。

RuntimeCapability

指定编译所面向的公共语言运行时可能支持或不一定支持的功能。

SarifVersion

指定要生成的 SARIF 日志文件的版本。

ScopedKind

范围修饰符类型的枚举。

SourceCodeKind

指定 C# 或 VB 源代码类型。

SpecialType

指定特殊运行时类型的 ID。

SpeculativeBindingOption

描述在 SemanticModel 推理绑定方法之一中要执行的绑定类型。

SymbolDisplayDelegateStyle

指定如何仅 (名称或具有签名) 的名称显示委托。

SymbolDisplayExtensionMethodStyle

指定如何显示扩展方法。

SymbolDisplayGenericsOptions

指定在符号说明中如何显示泛型的选项。

SymbolDisplayGlobalNamespaceStyle

指定用于在符号说明中显示全局命名空间的选项。

SymbolDisplayKindOptions

指定在显示符号时应包含哪种类型的关键字。

SymbolDisplayLocalOptions

指定在符号说明中如何显示局部变量的选项。

SymbolDisplayMemberOptions

指定成员在符号说明中的显示方式的选项。

SymbolDisplayMiscellaneousOptions

指定有关符号说明格式的杂项选项。

SymbolDisplayParameterOptions

指定参数在 (成员、属性/索引器或委托) 符号的说明中的显示方式。

SymbolDisplayPartKind

指定一段分类文本 (SymbolDisplayPart) 的类型。

SymbolDisplayPropertyStyle

指定属性在符号说明中的显示方式的选项。

SymbolDisplayTypeQualificationStyle

指定符号说明中使用的限定量。

SymbolFilter

指示将包含哪些类型的声明符号

SymbolKind

指定可能的符号类型。

SyntaxRemoveOptions
SyntaxWalkerDepth

应采用 的 SyntaxWalker 语法。

TextDocumentKind

指示的种类 TextDocument

TypedConstantKind

表示 TypedConstant 的种类。

TypeKind

可能类型符号类型的枚举。

TypeParameterKind

表示不同类型的类型参数。

VarianceKind

声明泛型类型参数支持的方差类型的枚举。

WorkspaceChangeKind
WorkspaceDiagnosticKind

委托

SyntaxContextReceiverCreator

允许生成器提供 的实例 ISyntaxContextReceiver

SyntaxReceiverCreator

允许生成器提供 的实例 ISyntaxReceiver