使用反射获取类名的所有属性

时间:2011-03-21 11:09:21

标签: c# asp.net reflection

我正在加载dll,如下所示,

Type[] _Type = Assembly.GetAssembly(typeof(StdAdapter)).GetTypes();

现在我想得到一个特定'类名'的所有属性,它们作为字符串传递。

请建议如何实现这一目标。

由于

3 个答案:

答案 0 :(得分:1)

您可以使用

Type objectType = Type.GetType("ClassName");

当你得到这个时间时,可以使用该类型进行进一步反思:

objectType.GetProperties();

将返回属性。

这意味着您对数组的调用,您可以使用:

Assembly.GetAssembly(typeof(StdAdapter)).GetType("ClassName");

唯一的另一件事是循环遍历数组以找到正确的Type,不确定性能明智哪个更好,我会选择GetType()。

答案 1 :(得分:1)

Type.GetProperties()函数返回PropertyInfo对象的数组。

所以你会:

foreach(Type current in _Type)
{
  PropertyInfo[] properties = current.GetProperties();
}

你也可以这样做:typeof(StdAdapter).GetProperties()

答案 2 :(得分:1)

您可以使用一点Linq to Objects来从数组中获取所需的类:

_Type.SingleOrDefault(t => t.Name == "CLASS_NAME").GetProperties();