Приложение ReadKey InvalidOperationException не имеет консолиC#

Место общения программистов C#
Anonymous
Приложение ReadKey InvalidOperationException не имеет консоли

Сообщение Anonymous »

Я пытаюсь использовать ReadKey(), чтобы получить поле пароля, чтобы оно не отображалось в консоли основного приложения .net, которое я запускаю в Ubuntu.
Это код:

Код: Выделить всё

while (true)
{
var key = System.Console.ReadKey(true);

if (key.Key == ConsoleKey.Enter)
break;

Io.RootPass += key.KeyChar;
}
Но я получаю следующее исключение:

Произошло исключение: CLR/System.InvalidOperationException
В System.Console.dll произошло необработанное исключение типа «System.InvalidOperationException»: «Невозможно прочитать ключи, если какое-либо из приложений не имеет консоли или когда ввод консоли был перенаправлен. Попробуйте Console.Read.'

Код: Выделить всё

Console.ReadLine()
тоже не работает, он просто не генерирует исключение. Возвращаемое значение не присваивается при нажатии клавиши ввода, поэтому программа продолжает работать.
Я предполагаю, что это связано с тем, что терминал Linux работает по-другому. Есть ли другой работающий интерфейс для терминала Linux?
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/469 ... -a-console

Вернуться в «C#»