次の方法で共有


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.」を参照してください。 この実装では、以前の申請のシンボルも許可することで、これを回避できます。

コンパイラには、ISymbol API の使用による無限再帰の回避、ユース サイト診断の検出、アクセシビリティエラーの理由をより正確に診断するのに役立つ追加の返された詳細 (コンパイラの内部 API) など、この実装では満たされないアクセス チェックの追加要件があるため、コンパイラ内でのこの API の使用は避けるようにすることをお勧めします。

適用対象