/**
  * {@inheritDoc}
  */
 public Type[] GetInterfaceTypes(Type keyType)
 {
     Type[] interfaceTypes = this.interfaceTypes.GetExtension(keyType);
     if (interfaceTypes == null)
     {
         if (!IsRegistered(keyType))
         {
             throw new ArgumentException("Type " + keyType.FullName + " is not registered for this extension");
         }
         interfaceTypes = new Type[0];
     }
     return(interfaceTypes);
 }