Class MemberLookup
- Namespace
- ICSharpCode.Decompiler.CSharp.Resolver
- Assembly
- ICSharpCode.Decompiler.dll
Implementation of member lookup (C# 4.0 spec, §7.4).
public class MemberLookup
- Inheritance
-
MemberLookup
- Inherited Members
Constructors
MemberLookup(ITypeDefinition, IModule, bool)
public MemberLookup(ITypeDefinition currentTypeDefinition, IModule currentModule, bool isInEnumMemberInitializer = false)
Parameters
currentTypeDefinition
ITypeDefinitioncurrentModule
IModuleisInEnumMemberInitializer
bool
Methods
GetAccessibleMembers(ResolveResult)
Retrieves all members that are accessible and not hidden (by being overridden or shadowed). Returns both members and nested type definitions. Does not include extension methods.
public IEnumerable<IEntity> GetAccessibleMembers(ResolveResult targetResolveResult)
Parameters
targetResolveResult
ResolveResult
Returns
IsAccessible(IEntity, bool)
Gets whether entity
is accessible in the current class.
public bool IsAccessible(IEntity entity, bool allowProtectedAccess)
Parameters
entity
IEntityThe entity to test
allowProtectedAccess
boolWhether protected access to instance members is allowed. True if the type of the reference is derived from the current class. Protected static members may be accessible even if false is passed for this parameter.
Returns
IsInvocable(IMember)
Gets whether the member is considered to be invocable.
public static bool IsInvocable(IMember member)
Parameters
member
IMember
Returns
IsProtectedAccessAllowed(ResolveResult)
Gets whether access to protected instance members of the target expression is possible.
public bool IsProtectedAccessAllowed(ResolveResult targetResolveResult)
Parameters
targetResolveResult
ResolveResult
Returns
IsProtectedAccessAllowed(IType)
Gets whether access to protected instance members of the target type is possible.
public bool IsProtectedAccessAllowed(IType targetType)
Parameters
targetType
IType
Returns
Remarks
This method does not consider the special case of the 'base' reference. If possible, use the
IsProtectedAccessAllowed(ResolveResult)
overload instead.
Lookup(ResolveResult, string, IReadOnlyList<IType>, bool)
Performs a member lookup.
public ResolveResult Lookup(ResolveResult targetResolveResult, string name, IReadOnlyList<IType> typeArguments, bool isInvocation)
Parameters
targetResolveResult
ResolveResultname
stringtypeArguments
IReadOnlyList<IType>isInvocation
bool
Returns
LookupIndexers(ResolveResult)
Looks up the indexers on the target type.
public IReadOnlyList<MethodListWithDeclaringType> LookupIndexers(ResolveResult targetResolveResult)
Parameters
targetResolveResult
ResolveResult
Returns
LookupType(IType, string, IReadOnlyList<IType>, bool)
public ResolveResult LookupType(IType declaringType, string name, IReadOnlyList<IType> typeArguments, bool parameterizeResultType = true)
Parameters
declaringType
ITypename
stringtypeArguments
IReadOnlyList<IType>parameterizeResultType
bool