Estoy escribiendo una aplicación de consola de C# que toma 2 parámetros: myprogram.exe param1 param2
C# - Console.In.ReadToEnd() se cuelga en la entrada del usuario, si no hay datos de hilo para programar
param2
es opcional, y la idea es que si no es presente, obtener datos entubada:
echo "hithere" | myprogram.exe param1
he hecho este trabajo parte mediante la captura de Console.In.ReadToEnd()
cuando se pasa a sólo 1 parámetro.
El problema al que me enfrento es cuando solo se pasa 1 parámetro y no se canalizan datos, simplemente se sienta allí escuchando la entrada del usuario y la única manera de cerrar es Ctrl+C
para finalizar el programa.
En su lugar, ¿hay alguna forma de devolver un error y salir del programa si solo se proporcionó 1 parámetro y no se transmitieron datos?
Para probar si hay algo esperando, He intentado usar:
Console.OpenStandardInput().CanRead
Console.OpenStandardInput().Length
Console.In.Peek()
eso no funcionó.
También probé el 'hack' mencionado en la parte inferior de esta pregunta de stackoverflow: C# Console receive input with pipe.
¿Alguna idea?
Si vuelve a formatear su pregunta para que no se vea como un muro de texto, creo que conseguirá que más personas lo lean. –
Estoy de acuerdo con Mark, es un verdadero dolor leer ... –
Lo he reformateado ahora. Espero que sea menos intimidante leerlo. – Matt