1

私は C# の教師で、生徒向けに自動化された HW チェッカーを作成しました。学生は C# コンソール アプリケーションを作成します。私の HW チェッカーは入力リダイレクトに基づいているため、自分で生成した入力でコードをテストできます。

問題は、生徒がConsole.ReadKey()命令でプログラムを終了することがあることです (F5 - Debug でプログラムを実行したときに、実行ウィンドウが閉じないようにするためです)。Console.ReadKey()入力リダイレクトで実行すると、次の例外を除いてクラッシュします。

System.InvalidOperationException: アプリケーションにコンソールがない場合、またはコンソール入力がファイルからリダイレクトされた場合、キーを読み取れません。

(生徒のコードを変更せずに) この問題を「回避」する方法はありますか? 多分指示Consoleを無視するように言いReadKeyますか?

4

2 に答える 2

0

実行可能ファイルが IL にある場合は、ILDASMを使用する簡単なアプリケーションを作成できます。

重要な点は、ILDASM を使用して実行可能ファイルをテキスト ファイル/ストリームに逆アセンブルし、呼び出しを探してConsole.Read削除し、再コンパイルして実行することです。

于 2016-11-18T13:12:10.247 に答える