Exemplo n.º 1
0
        /// <summary>
        /// Determines whether two member signatures are considered equal according to their signatures.
        /// </summary>
        /// <param name="signature1">The first signature to compare.</param>
        /// <param name="signature2">The second signature to compare.</param>
        /// <returns><c>True</c> if the signatures are considered equal, <c>False</c> otherwise.</returns>
        public bool MatchMemberSignatures(CallingConventionSignature signature1, CallingConventionSignature signature2)
        {
            if (signature1 == null && signature2 == null)
                return true;
            if (signature1 == null || signature2 == null)
                return false;

            var fieldSignature = signature1 as FieldSignature;
            if (fieldSignature != null)
                return MatchFieldSignatures(fieldSignature, signature2 as FieldSignature);

            var methodSignature = signature1 as MethodSignature;
            if (methodSignature != null)
                return MatchMethodSignatures(methodSignature, signature2 as MethodSignature);

            var propertySignature = signature1 as PropertySignature;
            if (propertySignature != null)
                return MatchPropertySignatures(propertySignature, signature2 as PropertySignature);

            return false;
        }