Cómo instanciar PrivateType de clase privada interna

Estaba tratando de configurar una prueba de unidad para una clase interna privada, pero tuve muy poco éxito:

namespace Stats.Model
{
  public class DailyStat
  {
    private class DailyStatKey // The one to test
    {
      private DateTime date;
      public DateTime Date 
      { 
        get { return date; }
        set { date = value.Date; }
      }

      public StatType Type { get; set; }

      public override int GetHashCode()
      {
        return Date.Year * 1000000 +
               Date.Month * 10000 +
               Date.Day * 100 +
               (int)Type;
      }

      public override bool Equals(object obj)
      {
        DailyStatKey otherKey = obj as DailyStatKey;
        if (otherKey == null)
          return false;
        return (this.Date == otherKey.Date && this.StatType == otherKey.StatType);
      }
    }
  }
}

Probé este código:

PrivateType statKeyType = new PrivateType("Stats.Model", "Stats.Model.DailyStat.DailyStatKey");

tanto como

PrivateType statKeyType = new PrivateType("Stats.Model", "DailyStat.DailyStatKey");

En vano.

El nombre del ensamblado es "Stats.Model", y para mí el nombre del tipo también parece correcto, pero solo recibo una excepción: "System.TypeLoadException: No se pudo cargar el tipo"

Entonces, ¿qué estoy haciendo mal?

PrivateType, que yo sepa, se basa en la reflexión, y supongo que está destinado principalmente a este escenario, ya que no puede tener una clase privada directamente debajo de un espacio de nombres.

EDITAR:

Se agregó la implementación completa de DailyStatKey. Lo que quiero probar es la singularidad de mi método GetHashCode. Como puede ver, trato de ajustar una fecha + tipo en un solo int.

Respuestas a la pregunta(4)

Su respuesta a la pregunta