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)

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

GetConstantValueCore(SyntaxNode, CancellationToken)

如果提供的节点具有常量值,则将在 HasValue 设置为 true 且 Value 设置为常量的情况下返回 Optional 值。 如果节点没有常量值,则将返回一个 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 类派生:Base { void Test (Base b) { b.M () ; // Error - 无法访问受保护的成员。 基地。M () ;} }

仅当已知该实例为“此”实例 (“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, LocalFunctionStatementSyntax, 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 查询子句中 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#) 的 (:构造函数InitializerSyntax 和 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,用于未出现在源代码中的项的语义信息中。

适用于