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 的額外傳回 (詳細資料) ,有助於更精確地診斷協助工具失敗的原因。