¿Cómo puedo obtener los valores de parms (en un bucle mediante reflexión)? En la pregunta anterior, alguien me mostró cómo recorrer los parms usando reflexión.C# Obteniendo el valor de los parms usando la reflexión
static void Main(string[] args)
{
ManyParms("a","b","c",10,20,true,"end");
Console.ReadLine();
}
static void ManyParms(string a, string b, string c, int d, short e, bool f, string g)
{
var parameters = MethodBase.GetCurrentMethod().GetParameters();
foreach (ParameterInfo parameter in parameters)
{
string parmName = parameter.Name;
Console.WriteLine(parmName);
//Following idea required an object first
//Type t = this.GetType();
//t.GetField(parmName).GetValue(theObject));
}
}
Si tiene que saber por qué quiero hacer esto, por favor ver aquí: .NET Reflection of all method parameters
Gracias todos - parece que en Python, Perl, PHP esto sería fácil.
Aunque puede que no sea reflejo, si uso el reflejo para obtener el nombre del campo, parece que habría una manera fácil y dinámica de obtener el valor basado en el nombre. No he probado AOP (Programación Orientada a Aspectos) aún las soluciones. Esta es una de esas cosas que si no puedo hacerlo en una o dos horas, probablemente no lo haga.
Tal vez algo se podría hacer mediante la inspección de la reflexión a través de la máquina de estado que se genera cuando se utiliza un IEnumerable? Solo una idea de la que no sabría cómo darme cuenta :-) (Comenta aquí debido a una pregunta duplicada hoy) – Jbjstam