private bool IsVisible(MethodAttributes/*!*/ attributes, Type declaringType, bool specialNameOnly) {
if (specialNameOnly && (attributes & MethodAttributes.SpecialName) == 0) {
return false;
}
if (Context.DomainManager.Configuration.PrivateBinding) {
return true;
}
switch (attributes & MethodAttributes.MemberAccessMask) {
case MethodAttributes.Private:
case MethodAttributes.Assembly:
case MethodAttributes.FamANDAssem:
return false;
case MethodAttributes.Family:
case MethodAttributes.FamORAssem:
return declaringType != null && declaringType.IsVisible && !declaringType.IsSealed;
}
return true;
}