Classe personalizada usada como chave no dicionário, mas a chave não foi encontrada

Eu tenho uma aula, mostre abaixo, que é usada como chave em umDictionary<ValuesAandB, string> Eu estou tendo problemas ao tentar encontrar qualquer chave dentro deste dicionário, ele nunca encontra nada. Como você pode ver, eu ignoreiEquals eGetHashCode.

Para procurar a chave que estou usando

ValuesAandB key = new ValuesAandB(A,B);
if (DictionaryName.ContainsKey(key)) {
   ...
}

Há mais alguma coisa que eu esteja sentindo falta? Alguém pode apontar o que estou fazendo errado?

private class ValuesAandB {
   public string valueA;
   public string valueB;

   // Constructor
   public ValuesAandB (string valueAIn, string valueBIn) {
     valueA = valueAIn;
     valueB = ValueBIn;
   }

   public class EqualityComparer : IEqualityComparer<ValuesAandB> {
      public bool Equals(ValuesAandB x, ValuesAandB y) {
         return ((x.valueA.Equals(y.valueA)) && (x.valueB.Equals(y.valueB)));
      }
      public int GetHashCode(ValuesAandB x) {
         return x.valueA.GetHashCode() ^ x.valueB.GetHashCode();
      }
   }
}

E antes que alguém pergunte, sim, os valores estão no Dicionário!

questionAnswers(4)

yourAnswerToTheQuestion