Я пытаюсь поместить консольное приложение в докер-контейнер, и необходимо поймать нажатие клавиши со стрелкой на клавиатуре.
Код:
public static Direction ReadInputDirection()
{
var key = Console.ReadKey(intercept: true);
switch (key.Key)
{
case ConsoleKey.UpArrow:
return Direction.Up;
case ConsoleKey.DownArrow:
return Direction.Down;
case ConsoleKey.LeftArrow:
return Direction.Left;
case ConsoleKey.RightArrow:
return Direction.Right;
default:
return Direction.Invalid;
}
}
Кодвыше выдает следующее исключение:
Необработанное исключение: System.InvalidOperationException: Невозможно прочитать ключи, когда ни одно из приложений не имеет консоли или когда ввод с консоли был перенаправлен. Попробуйте Console.Read. в System.ConsolePal.ReadKey (логический перехват) в SnakeGame.Control.ReadInputDirection ()
Я использую следующую команду для запуска контейнера, где snake-game - это имя изображения.
docker run -i --name snake-game snake-game
Есть ли способ обойти эту проблему?