Come posso ottenere i valori di parms (in un ciclo usando la riflessione). Nella domanda precedente, qualcuno mi ha mostrato come passare in rassegna i parms usando la riflessione.C# Ottenere il valore di parms usando la riflessione
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));
}
}
Se è necessario sapere perché io voglio fare questo, si prega di vedere qui: .NET Reflection of all method parameters
Grazie tutti - sembra che in Python, Perl, PHP questo sarebbe stato facile.
Anche se potrebbe non essere un riflesso, se utilizzo il reflection per ottenere il nome del campo, sembra che ci sarebbe un modo semplice e dinamico per ottenere il valore in base al nome. Non ho ancora provato le soluzioni AOP (Aspect Oriented Programming). Questa è una di quelle cose che se non posso farlo in un'ora o due, probabilmente non lo farò.
Forse qualcosa potrebbe essere fatto controllando attraverso la riflessione della macchina statale che viene generato quando si utilizza un IEnumerable? Solo un'idea non saprei come realizzarmi :-) (Commentando qui a causa di una domanda doppia oggi) – Jbjstam