San
San

Reputation: 1837

Get all properties for a class name using reflection

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

Upvotes: 1

Views: 5207

Answers (3)

Sergi Papaseit
Sergi Papaseit

Reputation: 16194

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

Upvotes: 1

Russell
Russell

Reputation: 17737

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

Upvotes: 1

F.B. ten Kate
F.B. ten Kate

Reputation: 2032

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.

Upvotes: 1

Related Questions