private static bool TypesEqual(Type[] tx, Type[] ty)
 {
     for (int index = 0; index < tx.Length; ++index)
     {
         if (!MemberEqualityComparer.Equals((MemberInfo)tx[index], (MemberInfo)ty[index]))
         {
             return(false);
         }
     }
     return(true);
 }
 bool IEqualityComparer <MemberInfo> .Equals(MemberInfo x, MemberInfo y)
 {
     return(MemberEqualityComparer.Equals(x, y));
 }
 bool IEqualityComparer.Equals(object x, object y)
 {
     return(MemberEqualityComparer.Equals(x as MemberInfo, y as MemberInfo));
 }