public bool IsAccessible(IAccessibleMember member)
{
if (member.IsPublic) return true;
IType declaringType = member.DeclaringType;
if (declaringType == CurrentType()) return true;
if (member.IsInternal && member is IInternalEntity) return true;
if (member.IsProtected && CurrentType().IsSubclassOf(declaringType)) return true;
return IsDeclaredInside(declaringType);
}