BandaAncha

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 💬 foros ⏎
  • 🔍 en 👇 este 💬 foro ⏎
  • 🔍 en 👇 este 💬 tema ⏎
Regístrate Regístrate Identifícate Identifícate

Duda en C#: llamar a función mediante linea de comandos

BocaDePez

Buenas noches:

Me gustaría hacer una aplicación en C# que mediante consola de DOS, pueda introducir el nombre de una función del programa como si se tratara de un comando, por ejemplo:

int PtasEuros(int pPesetas) bla bla bla...

PtasEuros 5000 (esto lo tecleamos durante la ejecucion en la línea de comandos!!)

"PtasEuros Converter: 5000 pesetas son 30 euros"

Lo más sencillo sería:

if (pComando = "PtasEuros") ve a la funcion tal....

if (pComando = "Exit") ve a la funcion de salir...

if (pComando = "CopiaArchivo") ve a la funcion de copiar...

Pero busco algo más dinámico, sin tener que escribir código por cada comando nuevo. La idea iria por usar el contenido de la variable como nombre de la función, pero no se me ocurre cómo.

¿A alguien se le ocurre algo en C# o C++? Muchas Gracias!!

Rubik2k

Lo veo un poco tonto pero... ¿Has probado a pasar el nombre de la función como parámetro?

Saludos

BocaDePez

Puedes hacerlo a través de Reflection. Aquí tienes un ejemplo muy sencillo (no hay ningún tipo de control de errores que habría que hacer, y tampoco se pasan parámetros al método, cosa que se puede hacer por supuesto).

Imagen original en http://img152.imageshack.us/img152/3803/reflection.png

Invocando desde línea de comandos...

 > ConsoleApplication MyMethod
MyMethod in MyClass

Espero que te sirva.

Saludos.

🗨️ 2
BocaDePez

En el código falta un break; justo después del Invoke, para detener la búsqueda tras haber localizado e invocado el método en cuestión.

Saludos.

CePlusPlus

(Soy el que ha iniciado el post)

Yo si que he hecho un "break" de Semana Santa, jaja!

Retomo el asunto! Probaré ese código, tiene buena pinta.

Gracias!