c#:按名称获取类成员(反射)

时间:2011-03-28 21:58:43

标签: c# reflection

我有两个列表(列表)l1& L2。 我从外面得到了我想要使用的列表的名称(比方说l1)。

我如何找到所要求的清单?

我需要使用getMember方法吗?

感谢

1 个答案:

答案 0 :(得分:6)

你可以使用反射,但它相当昂贵。这是一个概述如何做到这一点的问题:

C# Reflection : Finding Attributes on a Member Field

鉴于列表名称在编译时是已知的,您可以考虑实现一个接受列表字符串名称的方法,并使用switch语句或if返回对相应列表的引用言。

static IList FindList(string name)
{
  if (name == "l1") { return l1; }
  else if (name == "l2") { return l2; }
  else throw Exception("List " + name + " not found.");
}

这在运行时比使用反射要快但需要维护(如果你有足够的列表来保证工作,你可以编写代码生成该方法)。