【发布时间】:2010-12-24 11:02:46
【问题描述】:
如何获取 parms 的值(在使用反射的循环中)。 在上一个问题中,有人向我展示了如何使用反射循环遍历参数。
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));
}
}
如果你一定知道我为什么要这样做,请看这里: .NET Reflection of all method parameters
谢谢大家 - 在 Python、PERL、PHP 中这似乎很容易。
即使它可能不是反射,如果我使用反射来获取字段名称,似乎会有一种简单的动态方法来获取基于名称的值。
我还没有尝试过 AOP(面向方面编程)的解决方案。
这是如果我不能在一两个小时内完成的事情之一,我可能不会这样做。
【问题讨论】:
-
也许可以通过反射检查使用 IEnumerable 时生成的状态机来完成一些事情?只是一个我不知道如何实现自己的想法:-)(由于今天重复的问题在这里评论)
标签: c# reflection