예제 #1
0
        /// <summary>
        /// Gets the hash code of a member
        /// </summary>
        /// <param name="a">Member</param>
        /// <returns></returns>
        public int GetHashCode(DmdMemberInfo a)
        {
            if ((object)a == null)
            {
                return(0);
            }

            switch (a.MemberType)
            {
            case DmdMemberTypes.TypeInfo:
            case DmdMemberTypes.NestedType:
                return(GetHashCode((DmdType)a));

            case DmdMemberTypes.Field:
                return(GetHashCode((DmdFieldInfo)a));

            case DmdMemberTypes.Method:
            case DmdMemberTypes.Constructor:
                return(GetHashCode((DmdMethodBase)a));

            case DmdMemberTypes.Property:
                return(GetHashCode((DmdPropertyInfo)a));

            case DmdMemberTypes.Event:
                return(GetHashCode((DmdEventInfo)a));
            }

            Debug.Fail($"Unknown type: {a.GetType()}");
            return(0);
        }
예제 #2
0
        void Write(DmdMemberInfo member)
        {
            switch (member.MemberType)
            {
            case DmdMemberTypes.TypeInfo:
            case DmdMemberTypes.NestedType:
                Write((DmdType)member);
                break;

            case DmdMemberTypes.Field:
                Write((DmdFieldInfo)member);
                break;

            case DmdMemberTypes.Constructor:
            case DmdMemberTypes.Method:
                Write((DmdMethodBase)member);
                break;

            case DmdMemberTypes.Property:
                Write((DmdPropertyInfo)member);
                break;

            case DmdMemberTypes.Event:
                Write((DmdEventInfo)member);
                break;

            default:
                Debug.Fail($"Unknown member: {member.GetType()}");
                break;
            }
        }