Banda Ancha EU

Comunidad de usuarios
de fibra, móvil y ADSL

hosting en interdominios
509 lecturas y 4 respuestas
  • Boca de Pez Boca de Pez
    6

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

    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!!

    Este tema lleva más de 6 meses inactivo. Es recomendable que abras un nuevo tema para retomar la conversación.
    • Lo veo un poco tonto pero... ¿Has probado a pasar el nombre…

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

      Saludos

    • Boca de Pez Boca de Pez
      6

      Puedes hacerlo a través de Reflection. Aquí tienes un ejemplo…

      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).

      Invocando desde línea de comandos...

       > ConsoleApplication MyMethod
      MyMethod in MyClass

      Espero que te sirva.

      Saludos.

      • Boca de Pez Boca de Pez
        6

        En el código falta un break; justo después del Invoke, para…

        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.

      • (Soy el que ha iniciado el post) Yo si que he hecho un…

        (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!