Compilation.IsSymbolAccessibleWithin(ISymbol, ISymbol, ITypeSymbol) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
检查是否可以 symbol
从内部 within
访问。 类型的 throughType
可选限定符用于解析实例成员的受保护访问。 所有符号都必须来自此编译或此编译 () References 引用的某些程序集。 within
是一个 INamedTypeSymbol 或 IAssemblySymbol。
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) 的其他返回详细信息 (,这有助于更准确地诊断辅助功能故障的原因。