Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ FilterAttributeImpl()

static bool System.Type.FilterAttributeImpl ( MemberInfo m,
object filterCriteria )
inlinestaticprivateinherited

Definition at line 1621 of file Type.cs.

1622 {
1623 if (filterCriteria == null)
1624 {
1625 throw new InvalidFilterCriteriaException(SR.InvalidFilterCriteriaException_CritInt);
1626 }
1627 switch (m.MemberType)
1628 {
1629 case MemberTypes.Constructor:
1630 case MemberTypes.Method:
1631 {
1632 MethodAttributes methodAttributes;
1633 try
1634 {
1635 int num2 = (int)filterCriteria;
1636 methodAttributes = (MethodAttributes)num2;
1637 }
1638 catch
1639 {
1640 throw new InvalidFilterCriteriaException(SR.InvalidFilterCriteriaException_CritInt);
1641 }
1642 MethodAttributes methodAttributes2 = ((m.MemberType != MemberTypes.Method) ? ((ConstructorInfo)m).Attributes : ((MethodInfo)m).Attributes);
1643 if ((methodAttributes & MethodAttributes.MemberAccessMask) != 0 && (methodAttributes2 & MethodAttributes.MemberAccessMask) != (methodAttributes & MethodAttributes.MemberAccessMask))
1644 {
1645 return false;
1646 }
1647 if ((methodAttributes & MethodAttributes.Static) != 0 && (methodAttributes2 & MethodAttributes.Static) == 0)
1648 {
1649 return false;
1650 }
1651 if ((methodAttributes & MethodAttributes.Final) != 0 && (methodAttributes2 & MethodAttributes.Final) == 0)
1652 {
1653 return false;
1654 }
1655 if ((methodAttributes & MethodAttributes.Virtual) != 0 && (methodAttributes2 & MethodAttributes.Virtual) == 0)
1656 {
1657 return false;
1658 }
1659 if ((methodAttributes & MethodAttributes.Abstract) != 0 && (methodAttributes2 & MethodAttributes.Abstract) == 0)
1660 {
1661 return false;
1662 }
1663 if ((methodAttributes & MethodAttributes.SpecialName) != 0 && (methodAttributes2 & MethodAttributes.SpecialName) == 0)
1664 {
1665 return false;
1666 }
1667 return true;
1668 }
1669 case MemberTypes.Field:
1670 {
1671 FieldAttributes fieldAttributes;
1672 try
1673 {
1674 int num = (int)filterCriteria;
1675 fieldAttributes = (FieldAttributes)num;
1676 }
1677 catch
1678 {
1679 throw new InvalidFilterCriteriaException(SR.InvalidFilterCriteriaException_CritInt);
1680 }
1681 FieldAttributes attributes = ((FieldInfo)m).Attributes;
1682 if ((fieldAttributes & FieldAttributes.FieldAccessMask) != 0 && (attributes & FieldAttributes.FieldAccessMask) != (fieldAttributes & FieldAttributes.FieldAccessMask))
1683 {
1684 return false;
1685 }
1686 if ((fieldAttributes & FieldAttributes.Static) != 0 && (attributes & FieldAttributes.Static) == 0)
1687 {
1688 return false;
1689 }
1690 if ((fieldAttributes & FieldAttributes.InitOnly) != 0 && (attributes & FieldAttributes.InitOnly) == 0)
1691 {
1692 return false;
1693 }
1694 if ((fieldAttributes & FieldAttributes.Literal) != 0 && (attributes & FieldAttributes.Literal) == 0)
1695 {
1696 return false;
1697 }
1698 if ((fieldAttributes & FieldAttributes.NotSerialized) != 0 && (attributes & FieldAttributes.NotSerialized) == 0)
1699 {
1700 return false;
1701 }
1702 if ((fieldAttributes & FieldAttributes.PinvokeImpl) != 0 && (attributes & FieldAttributes.PinvokeImpl) == 0)
1703 {
1704 return false;
1705 }
1706 return true;
1707 }
1708 default:
1709 return false;
1710 }
1711 }
TypeAttributes Attributes
Definition Type.cs:173

References System.Type.Attributes, System.SR.InvalidFilterCriteriaException_CritInt, and System.Reflection.MemberInfo.MemberType.