public override bool Equals(object obj)
        {
            if (this == obj)
            {
                return(true);
            }

            XMethodInstanceReference mie = obj as XMethodInstanceReference;

            if (mie == null)
            {
                return(false);
            }

            return(DeclaringType.Equals(mie.DeclaringType) &&
                   ((GenericMethod == mie.GenericMethod) ||
                    (GenericMethod != null && GenericMethod.Equals(mie.GenericMethod))) &&
                   (GenericArguments.Equals(mie.genericArguments)) &&
                   (Parameters.Equals(mie.Parameters)));
        }