Get all properties for a class name using reflecti

2019-07-30 05:47发布

I am loading the dll as shown below,

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

Now I want to get all the properties for a particular 'class name' which is being passed as a string.

Please suggest how to achieve this.

Thanks

3条回答
男人必须洒脱
2楼-- · 2019-07-30 06:02

You can use

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

When you get this time you can use the type for further reflection:

objectType.GetProperties();

which will return the properties.

This mean insteaf of your call into an array, you could use:

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

The only other thing would be to loop through the array in order to find the right Type, not sure performance wise which would be better, i'd go with GetType() though.

查看更多
太酷不给撩
3楼-- · 2019-07-30 06:03

You could use a little bit of Linq to Objects to get the class you need from the array:

_Type.SingleOrDefault(t => t.Name == "CLASS_NAME").GetProperties();
查看更多
Melony?
4楼-- · 2019-07-30 06:07

The Type.GetProperties() function returns an array of PropertyInfo objects.

So you would have:

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

You could also do: typeof(StdAdapter).GetProperties()

查看更多
登录 后发表回答