开发者

Get all properties for a class name using reflection

开发者 https://www.devze.com 2023-02-19 04:11 出处:网络
I am loading the dll as shown below, Type[] _Type = Assembly.GetAssembly(typeof(StdAdapter)开发者_运维问答).GetTypes();

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


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();


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.


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()

0

精彩评论

暂无评论...
验证码 换一张
取 消