Поделиться через


Compilation.IsSymbolAccessibleWithin(ISymbol, ISymbol, ITypeSymbol) Метод

Определение

Проверяет, доступен ли 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 в компиляторах, так как компиляторы предъявляют дополнительные требования к проверке доступа, которые не удовлетворяются этой реализацией, включая предотвращение бесконечной рекурсии, которая может привести к использованию ИНТЕРФЕЙСов API ISymbol здесь, обнаружение диагностики сайта использования и дополнительные возвращаемые сведения (из внутренних API компилятора), которые полезны для более точной диагностики причин сбоя специальных возможностей.

Применяется к