Compilation.IsSymbolAccessibleWithin(ISymbol, ISymbol, ITypeSymbol) 方法

定义

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

public bool IsSymbolAccessibleWithin (Microsoft.CodeAnalysis.ISymbol symbol, Microsoft.CodeAnalysis.ISymbol within, Microsoft.CodeAnalysis.ITypeSymbol throughType = default);
public bool IsSymbolAccessibleWithin (Microsoft.CodeAnalysis.ISymbol symbol, Microsoft.CodeAnalysis.ISymbol within, Microsoft.CodeAnalysis.ITypeSymbol? throughType = default);
member this.IsSymbolAccessibleWithin : Microsoft.CodeAnalysis.ISymbol * Microsoft.CodeAnalysis.ISymbol * Microsoft.CodeAnalysis.ITypeSymbol -> bool
Public Function IsSymbolAccessibleWithin (symbol As ISymbol, within As ISymbol, Optional throughType As ITypeSymbol = Nothing) As Boolean

参数

symbol
ISymbol
within
ISymbol
throughType
ITypeSymbol

返回

注解

即使缺少 References这些引用,提交也可以引用以前提交的符号及其引用的程序集。 请参阅https://github.com/dotnet/roslyn/issues/27356. 此实现通过允许以前的提交中的符号来解决此问题。

建议避免在编译器中使用此 API,因为编译器对此实现不满足的访问检查有其他要求,包括避免因此处使用 ISymbol API 而可能导致的无限递归、检测使用站点诊断,以及编译器内部 API) 的其他返回详细信息 (,这有助于更准确地诊断辅助功能故障的原因。

适用于