SemanticModel 类

定义

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

public ref class SemanticModel abstract
public abstract class SemanticModel
type SemanticModel = class
Public MustInherit Class SemanticModel
继承
SemanticModel

注解

SemanticModel 的实例缓存本地符号和语义信息。 因此,在询问有关语法树的多个问题时,使用 SemanticModel 的单个实例要高效得多,因为第一个问题中的信息可能会被重复使用。 这也意味着长时间保留 SemanticModel 实例可能会阻止大量内存被垃圾回收。

当答案是可通过从符号表的根目录( (编译) 的 AssemblySymbol)中遍历访问的命名符号时,将 (返回该符号,即返回的值将引用等于从符号表) 的根目录中访问的值。 表示不带名称 (实体的符号(例如,int 数组) 可能表现出引用相等性,也可能不显示引用相等性。 但是,某些命名符号 ((如局部变量) )无法从根访问。 这些符号作为语义问题的答案可见。 使用同一 SemanticModel 对象时,答案表现出引用相等性。

构造函数

SemanticModel()

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

属性

Compilation

从中获取此模型的编译。

CompilationCore

从中获取此模型的编译。

IgnoresAccessibility

如果这是在回答语义问题时忽略辅助功能规则的 SemanticModel,则返回 true。

IsSpeculativeSemanticModel

如果这是使用任何 TryGetSpeculativeSemanticModel 方法创建的推理语义模型,则返回 true。

Language

获取源语言 (“C#”或“Visual Basic”) 。

OriginalPositionForSpeculation

如果这是推理语义模型,则 返回创建推理模型的原始位置。 否则,返回 0。

ParentModel

如果这是推理语义模型,则 返回其父语义模型。 否则,返回 null。

ParentModelCore

如果这是推理语义模型,则 返回其父语义模型。 否则,返回 null。

RootCore

此语义模型的根

SyntaxTree

从中获取此模型的语法树。

SyntaxTreeCore

从中获取此模型的语法树。

方法

AnalyzeControlFlowCore(SyntaxNode)

分析方法主体的一部分内的控制流。

AnalyzeControlFlowCore(SyntaxNode, SyntaxNode)

分析方法主体的一部分内的控制流。

AnalyzeDataFlowCore(SyntaxNode)

分析方法主体的一部分内的数据流。

AnalyzeDataFlowCore(SyntaxNode, SyntaxNode)

分析方法主体的一部分内的数据流。

GetAliasInfoCore(SyntaxNode, CancellationToken)

如果“nameSyntax”解析为别名,则返回对应于 A 的 IAliasSymbol。否则返回 null。

GetConstantValue(SyntaxNode, CancellationToken)

如果提供的节点具有常量值,则将返回 Optional 值,并将 HasValue 设置为 true,并将 Value 设置为常量。 如果节点没有常量值,则将返回一个 Optional,并将 HasValue 设置为 false。

GetConstantValueCore(SyntaxNode, CancellationToken)

如果提供的节点具有常量值,则将返回 Optional 值,并将 HasValue 设置为 true,并将 Value 设置为常量。 如果节点没有常量值,则将返回一个 Optional,并将 HasValue 设置为 false。

GetDeclarationDiagnostics(Nullable<TextSpan>, CancellationToken)

获取与此 对象关联的语法树中的所有声明错误。 不会收到涉及错误语法、编译方法主体或初始值设定项的错误。

GetDeclaredSymbolCore(SyntaxNode, CancellationToken)

获取与声明语法节点关联的符号。

GetDeclaredSymbolsCore(SyntaxNode, CancellationToken)

获取与声明语法节点关联的符号。 与 不同 Microsoft.CodeAnalysis.SemanticModel.GetDeclaredSymbolForNode(Microsoft.CodeAnalysis.SyntaxNode,System.Threading.CancellationToken),此方法返回由给定声明语法节点声明的所有符号。 具体而言:

GetDiagnostics(Nullable<TextSpan>, CancellationToken)

获取与此 对象关联的语法树中的所有错误。 除 GetDeclarationDiagnostics 返回的错误外,还包括涉及编译方法主体或初始值设定项的错误。

GetEnclosingSymbol(Int32, CancellationToken)

给定此 SemanticModel 的 SyntaxTree 中的某个位置,将返回最内层的符号,该位置被视为在其中。

GetEnclosingSymbolCore(Int32, CancellationToken)

给定此 SemanticModel 的 SyntaxTree 中的某个位置,将返回最内层的符号,该位置被视为在其中。

GetImportScopes(Int32, CancellationToken)

在此 SemanticModel 的 SyntaxTree 中给定一个位置后, IImportScope该位置将返回 。 范围按从最接近传入 position 到最远的顺序排序。 有关每个范围可用的信息的更深入说明,请参阅 IImportScope

GetMemberGroupCore(SyntaxNode, CancellationToken)

获取解析为方法组或属性组的符号的信息时,然后从中选择方法;所选方法或属性位于 Symbol 中;所查询的组中的所有方法都放置在此属性中。

GetMethodBodyDiagnostics(Nullable<TextSpan>, CancellationToken)

获取与此 对象关联的语法树中的所有方法主体和初始值设定项错误。 不会收到涉及错误语法或声明的错误。

GetNullableContext(Int32)

获取 NullableContext 文件中某个位置处的 。

GetOperation(SyntaxNode, CancellationToken)

获取与表达式或语句语法节点对应的操作。

GetOperationCore(SyntaxNode, CancellationToken)

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

GetPreprocessingSymbolInfo(SyntaxNode)

如果 nameSyntax 是标识符名称语法节点,则 PreprocessingSymbolInfo 返回与之对应的 。

GetPreprocessingSymbolInfoCore(SyntaxNode)

如果 nameSyntax 是标识符名称语法节点,则 PreprocessingSymbolInfo 返回与之对应的 。

GetSpeculativeAliasInfoCore(Int32, SyntaxNode, SpeculativeBindingOption)

在指定位置的上下文中绑定名称,并查看它是否解析为别名。 如果已返回,则返回与之对应的 AliasSymbol。 否则,返回 null。

GetSpeculativeSymbolInfoCore(Int32, SyntaxNode, SpeculativeBindingOption)

在指定位置的上下文中绑定节点,并获取类型、符号和诊断等语义信息。 此方法用于获取有关实际上未出现在源代码中的表达式的语义信息。

GetSpeculativeTypeInfoCore(Int32, SyntaxNode, SpeculativeBindingOption)

在指定位置的上下文中绑定节点,并获取类型、符号和诊断等语义信息。 此方法用于获取有关实际上未出现在源代码中的表达式的语义信息。

GetSymbolInfoCore(SyntaxNode, CancellationToken)

获取有关语法节点的符号信息。

GetSyntaxDiagnostics(Nullable<TextSpan>, CancellationToken)

获取与此 对象关联的语法树中的所有语法错误。 不会收到涉及声明或编译方法主体或初始值设定项的错误。

GetTopmostNodeForDiagnosticAnalysis(ISymbol, SyntaxNode)

获取其声明语法引用之一的符号和语法,并返回语法分析器要使用的最顶层语法节点。

GetTypeInfoCore(SyntaxNode, CancellationToken)

获取有关语法节点的类型信息。

IsAccessible(Int32, ISymbol)

确定是否可从指定位置访问符号。

IsAccessibleCore(Int32, ISymbol)

确定是否可从指定位置访问符号。

IsEventUsableAsField(Int32, IEventSymbol)

类似字段的事件可用作类型中的字段,这些字段可以访问事件的声明类型的私有成员。

IsEventUsableAsFieldCore(Int32, IEventSymbol)

类似字段的事件可用作类型中的字段,这些字段可以访问事件的声明类型的私有成员。

LookupBaseMembers(Int32, String)

获取指定位置的上下文中的可用基类型成员。 类似于调用 LookupSymbols(Int32, INamespaceOrTypeSymbol, String, Boolean) ,将容器设置为发生该 position 类型的直接基类型。 但是,辅助功能规则不同:基类型的受保护成员将可见。

请考虑以下示例:

public class Base { protected void M () { } }

public class Derived: Base { void Test (Base b) { b.M () ; // Error - 无法访问受保护的成员。 基地。M () ;} }

仅当已知该实例是“this”实例 (“base”关键字 (keyword) ) 时,才能访问另一种类型的实例的受保护成员。

LookupBaseMembersCore(Int32, String)

的后备实现 LookupBaseMembers(Int32, String)

LookupLabels(Int32, String)

获取指定位置和可选容器的上下文中可用的命名标签符号。 仅返回可从给定位置访问和可见的成员。

LookupLabelsCore(Int32, String)

的后备实现 LookupLabels(Int32, String)

LookupNamespacesAndTypes(Int32, INamespaceOrTypeSymbol, String)

获取指定位置和可选容器的上下文中可用的命名命名空间和类型符号。 仅返回可从给定位置访问和可见的成员。

LookupNamespacesAndTypesCore(Int32, INamespaceOrTypeSymbol, String)

的后备实现 LookupNamespacesAndTypes(Int32, INamespaceOrTypeSymbol, String)

LookupStaticMembers(Int32, INamespaceOrTypeSymbol, String)

获取指定位置和可选容器的上下文中可用的命名静态成员符号。 仅返回可从给定位置访问和可见的成员。

考虑使用非简化扩展方法,因为它们是静态方法。

LookupStaticMembersCore(Int32, INamespaceOrTypeSymbol, String)

的后备实现 LookupStaticMembers(Int32, INamespaceOrTypeSymbol, String)

LookupSymbols(Int32, INamespaceOrTypeSymbol, String, Boolean)

获取指定位置和可选容器的上下文中的可用命名符号。 仅返回可从给定位置访问和可见的符号。

LookupSymbolsCore(Int32, INamespaceOrTypeSymbol, String, Boolean)

的后备实现 LookupSymbols(Int32, INamespaceOrTypeSymbol, String, Boolean)

扩展方法

AnalyzeControlFlow(SemanticModel, StatementSyntax)

分析方法主体的一部分内的控制流。

AnalyzeControlFlow(SemanticModel, StatementSyntax, StatementSyntax)

分析方法主体的一部分内的控制流。

AnalyzeDataFlow(SemanticModel, ConstructorInitializerSyntax)

分析 中的 ConstructorInitializerSyntax数据流。

AnalyzeDataFlow(SemanticModel, ExpressionSyntax)

分析 中的 ExpressionSyntax数据流。

AnalyzeDataFlow(SemanticModel, PrimaryConstructorBaseTypeSyntax)

分析初始值设定项内的 ArgumentList 数据流。

AnalyzeDataFlow(SemanticModel, StatementSyntax)

分析方法主体的一部分内的数据流。

AnalyzeDataFlow(SemanticModel, StatementSyntax, StatementSyntax)

分析方法主体的一部分内的数据流。

ClassifyConversion(SemanticModel, ExpressionSyntax, ITypeSymbol, Boolean)

确定在给定表达式转换为给定类型时将使用哪种类型的转换(如果有)。 如果 isExplicitInSource 为 true,则生成的转换是在对强制转换表达式执行转换时将使用的转换。

ClassifyConversion(SemanticModel, Int32, ExpressionSyntax, ITypeSymbol, Boolean)

确定在给定表达式转换为给定类型时将使用哪种类型的转换(如果有)。 如果 isExplicitInSource 为 true,则生成的转换是在对强制转换表达式执行转换时将使用的转换。

GetAliasInfo(SemanticModel, IdentifierNameSyntax, CancellationToken)

如果 nameSyntax 解析为别名,则返回对应于 A 的 AliasSymbol。否则返回 null。

GetAwaitExpressionInfo(SemanticModel, AwaitExpressionSyntax)

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

GetCollectionInitializerSymbolInfo(SemanticModel, ExpressionSyntax, CancellationToken)

返回 () 对应于 中 Initializer给定表达式语法的“Add”方法符号(如果有)。

GetConstantValue(SemanticModel, ExpressionSyntax, CancellationToken)

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

GetConversion(SemanticModel, SyntaxNode, CancellationToken)

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

GetDeclaredSymbol(SemanticModel, AccessorDeclarationSyntax, CancellationToken)

给定声明属性或成员访问器的语法节点,获取相应的符号。

GetDeclaredSymbol(SemanticModel, AnonymousObjectCreationExpressionSyntax, CancellationToken)

给定匿名对象创建表达式的语法节点,获取匿名对象类型符号。

GetDeclaredSymbol(SemanticModel, AnonymousObjectMemberDeclaratorSyntax, CancellationToken)

给定匿名对象创建初始值设定项的语法节点,获取匿名对象属性符号。

GetDeclaredSymbol(SemanticModel, ArgumentSyntax, CancellationToken)

给定元组参数的语法节点,获取元组元素符号。

GetDeclaredSymbol(SemanticModel, BaseMethodDeclarationSyntax, CancellationToken)

给定基方法声明语法,获取相应的方法符号。

GetDeclaredSymbol(SemanticModel, BasePropertyDeclarationSyntax, CancellationToken)

给定声明属性、索引器或事件的语法节点,获取相应的声明符号。

GetDeclaredSymbol(SemanticModel, BaseTypeDeclarationSyntax, CancellationToken)

给定类型声明,获取相应的类型符号。

GetDeclaredSymbol(SemanticModel, CatchDeclarationSyntax, CancellationToken)

给定 catch 声明,获取异常变量的符号

GetDeclaredSymbol(SemanticModel, CompilationUnitSyntax, CancellationToken)

给定编译单元语法,获取相应的简单程序入口点符号。

GetDeclaredSymbol(SemanticModel, DelegateDeclarationSyntax, CancellationToken)

给定委托声明,获取相应的类型符号。

GetDeclaredSymbol(SemanticModel, EnumMemberDeclarationSyntax, CancellationToken)

给定枚举成员声明,获取相应的字段符号。

GetDeclaredSymbol(SemanticModel, EventDeclarationSyntax, CancellationToken)

给定声明 (自定义) 事件的语法节点,获取相应的事件符号。

GetDeclaredSymbol(SemanticModel, ExternAliasDirectiveSyntax, CancellationToken)

给定外部别名声明,获取所引入别名的相应符号。

GetDeclaredSymbol(SemanticModel, FileScopedNamespaceDeclarationSyntax, CancellationToken)

给定命名空间声明语法节点,获取声明程序集的相应命名空间符号。

GetDeclaredSymbol(SemanticModel, ForEachStatementSyntax, CancellationToken)

给定 foreach 语句,获取迭代变量的符号

GetDeclaredSymbol(SemanticModel, IndexerDeclarationSyntax, CancellationToken)

给定声明索引器的语法节点,获取相应的声明符号。

GetDeclaredSymbol(SemanticModel, JoinIntoClauseSyntax, CancellationToken)

获取在 join into 子句中声明的查询范围变量。

GetDeclaredSymbol(SemanticModel, LabeledStatementSyntax, CancellationToken)

给定带标签的语句语法,获取相应的标签符号。

GetDeclaredSymbol(SemanticModel, MemberDeclarationSyntax, CancellationToken)

给定成员声明语法,获取相应的符号。

GetDeclaredSymbol(SemanticModel, NamespaceDeclarationSyntax, CancellationToken)

给定命名空间声明语法节点,获取声明程序集的相应命名空间符号。

GetDeclaredSymbol(SemanticModel, ParameterSyntax, CancellationToken)

给定参数声明语法节点,获取相应的符号。

GetDeclaredSymbol(SemanticModel, PropertyDeclarationSyntax, CancellationToken)

给定声明属性的语法节点,获取相应的声明符号。

GetDeclaredSymbol(SemanticModel, QueryClauseSyntax, CancellationToken)

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

GetDeclaredSymbol(SemanticModel, QueryContinuationSyntax, CancellationToken)

获取在查询延续子句中声明的查询范围变量。

GetDeclaredSymbol(SemanticModel, SingleVariableDesignationSyntax, CancellationToken)

给定变量声明符语法,获取相应的符号。

GetDeclaredSymbol(SemanticModel, SwitchLabelSyntax, CancellationToken)

给定开关标签语法,获取相应的标签符号。

GetDeclaredSymbol(SemanticModel, TupleElementSyntax, CancellationToken)

给定元组元素语法,获取相应的符号。

GetDeclaredSymbol(SemanticModel, TupleExpressionSyntax, CancellationToken)

给定元组表达式的语法节点,获取元组类型符号。

GetDeclaredSymbol(SemanticModel, TypeParameterSyntax, CancellationToken)

给定类型参数声明 (字段或方法) ,获取相应的符号

GetDeclaredSymbol(SemanticModel, UsingDirectiveSyntax, CancellationToken)

给定 using 声明,获取引入的 using 别名的相应符号。

GetDeclaredSymbol(SemanticModel, VariableDeclaratorSyntax, CancellationToken)

给定变量声明符语法,获取相应的符号。

GetDeconstructionInfo(SemanticModel, AssignmentExpressionSyntax)

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

GetDeconstructionInfo(SemanticModel, ForEachVariableStatementSyntax)

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

GetForEachStatementInfo(SemanticModel, CommonForEachStatementSyntax)

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

GetForEachStatementInfo(SemanticModel, ForEachStatementSyntax)

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

GetIndexerGroup(SemanticModel, ExpressionSyntax, CancellationToken)

返回可使用给定表达式作为接收器调用的可访问的非隐藏索引器的列表。

GetMemberGroup(SemanticModel, AttributeSyntax, CancellationToken)

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

GetMemberGroup(SemanticModel, ConstructorInitializerSyntax, CancellationToken)

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

GetMemberGroup(SemanticModel, ExpressionSyntax, CancellationToken)

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

GetQueryClauseInfo(SemanticModel, QueryClauseSyntax, CancellationToken)

获取与查询子句关联的语义信息。

GetSpeculativeAliasInfo(SemanticModel, Int32, IdentifierNameSyntax, SpeculativeBindingOption)

在指定位置的上下文中绑定名称,并查看它是否解析为别名。 如果存在,则返回对应于它的 AliasSymbol。 否则,返回 null。

GetSpeculativeConversion(SemanticModel, Int32, ExpressionSyntax, SpeculativeBindingOption)

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

GetSpeculativeSymbolInfo(SemanticModel, Int32, AttributeSyntax)

在指定位置的上下文中绑定属性,并获取类型、符号和诊断等语义信息。 此方法用于获取有关实际未出现在源代码中的特性的语义信息。

GetSpeculativeSymbolInfo(SemanticModel, Int32, ConstructorInitializerSyntax)

在指定位置的上下文中绑定构造函数初始值设定项,并获取类型、符号和诊断等语义信息。 此方法用于获取有关实际未出现在源代码中的构造函数初始值设定项的语义信息。

注意:这仅适用于已存在构造函数初始值设定项的位置。

GetSpeculativeSymbolInfo(SemanticModel, Int32, CrefSyntax, SpeculativeBindingOption)

在指定位置的上下文中绑定 CrefSyntax 表达式并获取符号信息。 此方法用于获取有关实际未出现在源代码中的表达式的符号信息。

GetSpeculativeSymbolInfo(SemanticModel, Int32, ExpressionSyntax, SpeculativeBindingOption)

在指定位置的上下文中绑定表达式并获取符号信息。 此方法用于获取有关实际未出现在源代码中的表达式的符号信息。

GetSpeculativeSymbolInfo(SemanticModel, Int32, PrimaryConstructorBaseTypeSyntax)

在指定位置的上下文中绑定构造函数初始值设定项,并获取有关符号的语义信息。 此方法用于获取有关实际未出现在源代码中的构造函数初始值设定项的语义信息。

注意:这仅适用于已存在构造函数初始值设定项的位置。 PrimaryConstructorBaseTypeSyntax.

GetSpeculativeTypeInfo(SemanticModel, Int32, ExpressionSyntax, SpeculativeBindingOption)

在指定位置的上下文中绑定表达式并获取类型信息。 此方法用于获取有关实际未出现在源代码中的表达式的类型信息。

GetSymbolInfo(SemanticModel, AttributeSyntax, CancellationToken)

返回 () 在程序中绑定到的给定属性语法(如果有)的符号。

GetSymbolInfo(SemanticModel, ConstructorInitializerSyntax, CancellationToken)

返回 () 在程序中绑定到的给定构造函数初始值设定项语法(如果有)的符号。

GetSymbolInfo(SemanticModel, CrefSyntax, CancellationToken)

获取与文档注释 cref 关联的语义信息。

GetSymbolInfo(SemanticModel, ExpressionSyntax, CancellationToken)

返回 () 在程序中绑定到的给定表达式语法(如果有)的符号。

此方法永远不会返回 AliasSymbol。 将改为返回别名所引用的内容。 若要获取有关别名的信息,请调用 GetAliasInfo。

如果在表达式“new C (...) ”中绑定类型名称 C,则当重载解析) 失败时,将返回绑定到 的实际构造函数 (或所有构造函数。 只要 C 明确绑定到具有构造函数的单个类型,就会出现这种情况。 如果 C 不明确绑定到多个类型,或者 C 绑定到静态类,则返回类型 () 。

GetSymbolInfo(SemanticModel, OrderingSyntax, CancellationToken)

获取 orderby query 子句中 ordering 子句的语义信息。

GetSymbolInfo(SemanticModel, PrimaryConstructorBaseTypeSyntax, CancellationToken)

返回 () 在程序中绑定到的给定构造函数初始值设定项语法(如果有)的符号。

GetSymbolInfo(SemanticModel, SelectOrGroupClauseSyntax, CancellationToken)

获取与 select 或 group 子句关联的语义信息。

GetTypeInfo(SemanticModel, AttributeSyntax, CancellationToken)

获取有关属性的类型信息。

GetTypeInfo(SemanticModel, ConstructorInitializerSyntax, CancellationToken)

获取有关构造函数初始值设定项的类型信息。

GetTypeInfo(SemanticModel, ExpressionSyntax, CancellationToken)

获取有关表达式的类型信息。

GetTypeInfo(SemanticModel, SelectOrGroupClauseSyntax, CancellationToken)

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

TryGetSpeculativeSemanticModel(SemanticModel, Int32, ArrowExpressionClauseSyntax, SemanticModel)

获取与未在此源代码中显示的表达式正文关联的 SemanticModel 对象。 这可用于获取有关未出现在源代码中的表达式正文子部分的详细语义信息。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, AttributeSyntax, SemanticModel)

获取一个 SemanticModel 对象,该对象与此源代码中未显示的属性相关联。 这可用于获取有关未出现在源代码中的属性的子部分的详细语义信息。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, ConstructorInitializerSyntax, SemanticModel)

获取一个 SemanticModel 对象,该对象与未出现在此源代码中的构造函数初始值设定项相关联。 这可用于获取有关未出现在源代码中的构造函数初始值设定项的子部分的详细语义信息。

注意:这仅适用于已存在构造函数初始值设定项的位置。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, CrefSyntax, SemanticModel)

获取与未在此源代码中显示的 cref 语法节点关联的 SemanticModel 对象。 这可用于获取有关未出现在源代码中的 cref 语法子部分的详细语义信息。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, EqualsValueClauseSyntax, SemanticModel)

获取与未在此源代码中显示的初始值设定项关联的 SemanticModel 对象。 这可用于获取有关未出现在源代码中的字段初始值设定项或默认参数值的子部分的详细语义信息。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, PrimaryConstructorBaseTypeSyntax, SemanticModel)

获取一个 SemanticModel 对象,该对象与未出现在此源代码中的构造函数初始值设定项相关联。 这可用于获取有关未出现在源代码中的构造函数初始值设定项的子部分的详细语义信息。

注意:这仅适用于已存在构造函数初始值设定项的位置。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, StatementSyntax, SemanticModel)

获取与未在此源代码中显示的语句关联的 SemanticModel 对象。 这可用于获取有关未出现在源代码中的语句子部分的详细语义信息。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, TypeSyntax, SemanticModel, SpeculativeBindingOption)

获取与未在此源代码中显示的类型语法节点关联的 SemanticModel 对象。 这可用于获取有关未出现在源代码中的类型语法子部分的详细语义信息。

TryGetSpeculativeSemanticModelForMethodBody(SemanticModel, Int32, AccessorDeclarationSyntax, SemanticModel)

获取与方法主体关联的 SemanticModel 对象,该对象未在此源代码中显示。 给定 position 必须位于此 SemanticModel 的根语法节点的现有方法主体内。 在此现有方法主体中声明的局部变量和标签不被视为在推理方法主体的范围内。

TryGetSpeculativeSemanticModelForMethodBody(SemanticModel, Int32, BaseMethodDeclarationSyntax, SemanticModel)

获取一个 SemanticModel 对象,该对象与此源代码中未出现的方法主体相关联。 给定 position 必须位于此 SemanticModel 的根语法节点的现有方法主体内。 在此现有方法主体中声明的局部变量和标签不被视为在推理方法主体的范围内。

AnalyzeControlFlow(SemanticModel, SyntaxNode)

分析方法主体的一部分内的控制流。

AnalyzeControlFlow(SemanticModel, SyntaxNode, SyntaxNode)

分析方法主体的一部分内的控制流。

AnalyzeDataFlow(SemanticModel, SyntaxNode)

分析方法主体的一部分内的数据流。 注释 C#) 的 (:ConstructorInitializerSyntax 和 PrimaryConstructorBaseTypeSyntax 被此 API 视为常规语句

AnalyzeDataFlow(SemanticModel, SyntaxNode, SyntaxNode)

分析方法主体的一部分内的数据流。

GetAliasInfo(SemanticModel, SyntaxNode, CancellationToken)

如果“nameSyntax”解析为别名,则返回对应于 A 的 IAliasSymbol。否则返回 null。

GetDeclaredSymbol(SemanticModel, SyntaxNode, CancellationToken)

获取与声明语法节点关联的符号。

GetMemberGroup(SemanticModel, SyntaxNode, CancellationToken)

获取语法节点的方法或索引属性符号的列表。

GetSpeculativeAliasInfo(SemanticModel, Int32, SyntaxNode, SpeculativeBindingOption)

在指定位置的上下文中绑定名称,并查看它是否解析为别名。 如果已返回,则返回与之对应的 AliasSymbol。 否则,返回 null。

GetSpeculativeSymbolInfo(SemanticModel, Int32, SyntaxNode, SpeculativeBindingOption)

在指定位置的上下文中绑定节点,并获取类型、符号和诊断等语义信息。 此方法用于获取有关实际上未出现在源代码中的表达式的语义信息。

GetSpeculativeTypeInfo(SemanticModel, Int32, SyntaxNode, SpeculativeBindingOption)

在指定位置的上下文中绑定节点,并获取类型、符号和诊断等语义信息。 此方法用于获取有关实际上未出现在源代码中的表达式的语义信息。

GetSymbolInfo(SemanticModel, SyntaxNode, CancellationToken)

获取有关语法节点的符号信息。

GetTypeInfo(SemanticModel, SyntaxNode, CancellationToken)

获取有关语法节点的类型信息。

AnalyzeControlFlow(SemanticModel, StatementSyntax)

分析方法主体的一部分内的控制流。

AnalyzeControlFlow(SemanticModel, StatementSyntax, StatementSyntax)

分析方法主体的一部分内的控制流。

AnalyzeDataFlow(SemanticModel, ExpressionSyntax)

分析表达式中的数据流。

AnalyzeDataFlow(SemanticModel, StatementSyntax)

分析语句中的数据流。

AnalyzeDataFlow(SemanticModel, StatementSyntax, StatementSyntax)

分析一组连续语句中的数据流。

ClassifyConversion(SemanticModel, ExpressionSyntax, ITypeSymbol)

确定表达式语法与指定类型之间的转换类型。

ClassifyConversion(SemanticModel, Int32, ExpressionSyntax, ITypeSymbol)

确定表达式语法与指定类型之间的转换类型。

GetAggregateClauseSymbolInfo(SemanticModel, AggregateClauseSyntax, CancellationToken)

返回与 AggregateClauseSyntax 关联的方法的相关信息。

GetAliasInfo(SemanticModel, IdentifierNameSyntax, CancellationToken)

如果“nameSyntax”解析为别名,则返回对应于 A 的 AliasSymbol。否则返回 null。

GetAwaitExpressionInfo(SemanticModel, AwaitExpressionSyntax, CancellationToken)

获取包含指定 AwaitExpressionSyntax 的语义信息的相应 AwaitExpressionInfo。

GetCollectionInitializerSymbolInfo(SemanticModel, ExpressionSyntax, CancellationToken)

返回 () 对应于 中 Initializer给定表达式语法的“Add”方法符号(如果有)。

GetCollectionRangeVariableSymbolInfo(SemanticModel, CollectionRangeVariableSyntax, CancellationToken)

返回与 CollectionRangeVariableSyntax 关联的方法的相关信息。

GetConversion(SemanticModel, SyntaxNode, CancellationToken)

获取包含指定 ExpressionSyntax 的语义信息的相应 TypeInfo。

GetDeclaredSymbol(SemanticModel, AccessorStatementSyntax, CancellationToken)

获取指定 AccessorStatementSyntax 的相应 MethodSymbol。

GetDeclaredSymbol(SemanticModel, AggregationRangeVariableSyntax, CancellationToken)

获取指定 AggregationRangeVariableSyntax 的相应 RangeVariableSymbol。

GetDeclaredSymbol(SemanticModel, AnonymousObjectCreationExpressionSyntax, CancellationToken)

获取指定 AnonymousObjectCreationExpressionSyntax 的相应 NamedTypeSymbol。

GetDeclaredSymbol(SemanticModel, CatchStatementSyntax, CancellationToken)

获取指定 CatchStatementSyntax 的相应 LocalSymbol。

GetDeclaredSymbol(SemanticModel, CollectionRangeVariableSyntax, CancellationToken)

获取指定 CollectionRangeVariableSyntax 的相应 RangeVariableSymbol。

GetDeclaredSymbol(SemanticModel, DeclareStatementSyntax, CancellationToken)

获取指定 DeclareStatementSyntax 的相应符号。

GetDeclaredSymbol(SemanticModel, DelegateStatementSyntax, CancellationToken)

获取指定 DelegateStatementSyntax 的相应 NamedTypeSymbol。

GetDeclaredSymbol(SemanticModel, EnumBlockSyntax, CancellationToken)

获取指定 EnumBlockSyntax 的相应 NamedTypeSymbol。

GetDeclaredSymbol(SemanticModel, EnumMemberDeclarationSyntax, CancellationToken)

获取指定 EnumMemberDeclarationSyntax 的相应 FieldSymbol。

GetDeclaredSymbol(SemanticModel, EnumStatementSyntax, CancellationToken)

获取指定 EnumStatementSyntax 的相应 NamedTypeSymbol。

GetDeclaredSymbol(SemanticModel, EventBlockSyntax, CancellationToken)

获取指定 EventBlockSyntax 的相应 EventSymbol。

GetDeclaredSymbol(SemanticModel, EventStatementSyntax, CancellationToken)

获取指定 EventStatementSyntax 的相应 EventSymbol。

GetDeclaredSymbol(SemanticModel, ExpressionRangeVariableSyntax, CancellationToken)

获取指定 ExpressionRangeVariableSyntax 的相应 RangeVariableSymbol。

GetDeclaredSymbol(SemanticModel, FieldInitializerSyntax, CancellationToken)

获取指定 FieldInitializerSyntax 的相应 PropertySymbol。

GetDeclaredSymbol(SemanticModel, LabelStatementSyntax, CancellationToken)

获取指定 LabelStatementSyntax 的相应 LabelSymbol。

GetDeclaredSymbol(SemanticModel, MethodBlockBaseSyntax, CancellationToken)

获取指定 MethodBlockBaseSyntax 的相应 MethodSymbol。

GetDeclaredSymbol(SemanticModel, MethodStatementSyntax, CancellationToken)

获取指定 MethodStatementSyntax 的相应 MethodSymbol。

GetDeclaredSymbol(SemanticModel, ModifiedIdentifierSyntax, CancellationToken)

获取指定标识符的相应符号。

GetDeclaredSymbol(SemanticModel, NamespaceBlockSyntax, CancellationToken)

获取指定 NamespaceBlockSyntax 的相应 NamespaceSymbol。

GetDeclaredSymbol(SemanticModel, NamespaceStatementSyntax, CancellationToken)

获取指定 NamespaceStatementSyntax 的相应 NamespaceSymbol。

GetDeclaredSymbol(SemanticModel, OperatorStatementSyntax, CancellationToken)

获取指定 OperatorStatementSyntax 的相应 MethodSymbol。

GetDeclaredSymbol(SemanticModel, ParameterSyntax, CancellationToken)

获取指定 ParameterSyntax 的相应 ParameterSymbol。

GetDeclaredSymbol(SemanticModel, PropertyBlockSyntax, CancellationToken)

获取指定 PropertyBlockSyntax 的相应 PropertySymbol。

GetDeclaredSymbol(SemanticModel, PropertyStatementSyntax, CancellationToken)

获取指定 PropertyStatementSyntax 的相应 PropertySymbol。

GetDeclaredSymbol(SemanticModel, SimpleImportsClauseSyntax, CancellationToken)

获取指定 AliasImportsClauseSyntax 的相应 AliasSymbol。

GetDeclaredSymbol(SemanticModel, SubNewStatementSyntax, CancellationToken)

获取指定 SubNewStatementSyntax 的相应 MethodSymbol。

GetDeclaredSymbol(SemanticModel, TupleElementSyntax, CancellationToken)

获取指定元组元素的相应符号。

GetDeclaredSymbol(SemanticModel, TypeBlockSyntax, CancellationToken)

获取指定 TypeBlockSyntax 的相应 NamedTypeSymbol。

GetDeclaredSymbol(SemanticModel, TypeParameterSyntax, CancellationToken)

获取指定 TypeParameterSyntax 的相应 TypeParameterSymbol 符号。

GetDeclaredSymbol(SemanticModel, TypeStatementSyntax, CancellationToken)

获取指定 TypeStatementSyntax 的相应 NamedTypeSymbol。

GetForEachStatementInfo(SemanticModel, ForEachBlockSyntax)

获取包含指定 ForBlockSyntax 的语义信息的相应 ForEachStatementInfo。

GetForEachStatementInfo(SemanticModel, ForEachStatementSyntax)

获取相应的 ForEachStatementInfo,其中包含指定 ForEachStatementSyntax 的语义信息。

GetMemberGroup(SemanticModel, AttributeSyntax, CancellationToken)

获取指定 AttributeSyntax 的相应符号 ImmutableArray。

GetMemberGroup(SemanticModel, ExpressionSyntax, CancellationToken)

获取指定 ExpressionSyntax 的符号对应的 ImmutableArray。

GetPreprocessingSymbolInfo(SemanticModel, IdentifierNameSyntax)

如果给定节点位于预处理指令中,则获取其预处理符号信息。

GetSpeculativeAliasInfo(SemanticModel, Int32, IdentifierNameSyntax, SpeculativeBindingOption)

在指定位置的上下文中绑定名称,并查看它是否解析为别名。 如果已返回,则返回与之对应的 AliasSymbol。 否则,返回 null。

GetSpeculativeConversion(SemanticModel, Int32, ExpressionSyntax, SpeculativeBindingOption)

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

GetSpeculativeMemberGroup(SemanticModel, Int32, ExpressionSyntax)

获取在给定位置推测 ExpressionSyntax 的相应 ImmutableArray 符号数组,用于未出现在源代码中的项的语义信息中。

GetSpeculativeSymbolInfo(SemanticModel, Int32, AttributeSyntax)

获取相应的 SymbolInfo,其中包含位于给定位置的指定 AttributeSyntax 的语义信息,用于未出现在源代码中的项的语义信息。

GetSpeculativeSymbolInfo(SemanticModel, Int32, ExpressionSyntax, SpeculativeBindingOption)

获取包含指定 AttributeSyntax 的语义信息的相应 SymbolInfo。

GetSpeculativeTypeInfo(SemanticModel, Int32, ExpressionSyntax, SpeculativeBindingOption)

获取相应的 TypeInfo,其中包含在给定位置推测 ExpressionSyntax 的语义信息,用于未出现在源代码中的项的语义信息。

GetSymbolInfo(SemanticModel, AttributeSyntax, CancellationToken)

获取包含指定 AttributeSyntax 的语义信息的相应 SymbolInfo。

GetSymbolInfo(SemanticModel, CrefReferenceSyntax, CancellationToken)

获取包含指定 CrefReferenceSyntax 的语义信息的相应 SymbolInfo。

GetSymbolInfo(SemanticModel, ExpressionRangeVariableSyntax, CancellationToken)

如果不存在,则返回与 内LetClauseSyntax关联的 ExpressionRangeVariableSyntax Select 方法,Microsoft.CodeAnalysis.SymbolInfo.None否则返回 。

GetSymbolInfo(SemanticModel, ExpressionSyntax, CancellationToken)

获取包含指定 ExpressionSyntax 的语义信息的相应 SymbolInfo。

GetSymbolInfo(SemanticModel, FunctionAggregationSyntax, CancellationToken)

返回与 关联的 FunctionAggregationSyntax聚合函数。

GetSymbolInfo(SemanticModel, OrderingSyntax, CancellationToken)

返回与 OrderingSyntax关联的 OrderBy/OrderByDescending/ThenBy/ThenByDescending 方法。

GetSymbolInfo(SemanticModel, QueryClauseSyntax, CancellationToken)

返回查询子句的符号信息。

GetTypeInfo(SemanticModel, AttributeSyntax, CancellationToken)

获取包含指定 AttributeSyntax 的语义信息的相应 TypeInfo。

GetTypeInfo(SemanticModel, ExpressionSyntax, CancellationToken)

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

OptionCompareText(SemanticModel)

获取语义模型 OptionCompareText 属性。

OptionExplicit(SemanticModel)

获取语义模型 OptionExplicit 属性。

OptionInfer(SemanticModel)

获取语义模型 OptionInfer 属性。

OptionStrict(SemanticModel)

获取语义模型 OptionStrict 属性。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, AttributeSyntax, SemanticModel)

获取位于给定位置的 AttributeSyntax 的 SemanticModel,用于未出现在源代码中的项的语义信息中。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, EqualsValueSyntax, SemanticModel)

获取位于给定位置的 EqualsValueSyntax 的 SemanticModel,用于未出现在源代码中的项的语义信息中。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, ExecutableStatementSyntax, SemanticModel)

获取位于给定位置的 ExecutableStatementSyntax 的 SemanticModel,用于未出现在源代码中的项的语义信息中。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, RangeArgumentSyntax, SemanticModel)

获取位于给定位置的 RangeArgumentSyntax 的 SemanticModel,用于未出现在源代码中的项的语义信息中。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, TypeSyntax, SemanticModel, SpeculativeBindingOption)

获取位于给定位置的 TypeSyntax 的 SemanticModel,用于未出现在源代码中的项的语义信息中。

TryGetSpeculativeSemanticModelForMethodBody(SemanticModel, Int32, MethodBlockBaseSyntax, SemanticModel)

获取位于给定位置的 MethodBlockBaseSyntax 的 SemanticModel,用于未出现在源代码中的项的语义信息中。

适用于