claro que existe una manera usando reflection y sabiendo que tu clase solo necesita inicializarse tu podrias sin problemas invocar al metodo que deseas con solo el nombre
supongamos que tienes una clase x
Código csharp:
Ver originalusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MiClase
{
public class ClaseX
{
private static string pvalorX;
public static string valorX { get { return pvalorX; } set { pvalorX=value;} }
public static double Metodo1()
{
/// loque sea que haga
return 3.0;
}
public static double Metodo2()
{
return 1.0;
}
public static double Metodo3()
{
return 2.0;
}
}
}
y quieres invocar tus metodos dinamicamente solo con el nombre
Código csharp:
Ver originalusing System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
namespace MiClase
{
public class ClassInvocaDinamicamente
{
public double cualquierfuncion(string metodo)
{
//Namespace.NombreClase
Type variableTipo = Type.GetType("MiClase.ClaseX");
// Que Metodo Invocar
MethodInfo variableInfoMetodo= variableTipo.GetMethod(metodo);
// Ojo esto solo funcionara si tu constructor es static sin parametros y si tus metodos son estaticos y no requieren que instancies la clase
object instanciaResultado=variableInfoMetodo.Invoke(null, null);
double resultado = Convert.ToDouble(instanciaResultado);
return resultado;
}
}
}
y cuando invoques tu metodo simplemente haras algo como esto
Código csharp:
Ver originalMiClase
.ClassInvocaDinamicamente objeto
= new MiClase
.ClassInvocaDinamicamente(); Console.WriteLine(objeto.cualquierfuncion("Metodo1"));
Console.WriteLine(objeto.cualquierfuncion("Metodo2"));
Console.WriteLine(objeto.cualquierfuncion("Metodo3"));
Console.ReadLine();
prueba haciendo algo asi , pero pon atencion a los detalles esta es la forma rapida considerando q tus propiedades, metodos y miembros practicamente todos son estaticos, si tienes miembros no estaticos hay q trabajar mas con reflection pero de que puedes invocar metodos solo con el nombre es indudable.
cualquier dudad no aqui estamos para ayudarte