I'm reflecting a property 'Blah' its Type is ICollection
public ICollection<string> Blah { get; set; }
private void button1_Click(object sender, RoutedEventArgs e)
{
var pi = GetType().GetProperty("Blah");
MessageBox.Show(pi.PropertyType.ToString());
}
This gives me (as you'd expect!) ICollection<string>
...
But really I want to get the collection type i.e. ICollection
(rather than ICollection<string>
) - does anyone know how i'd do this please?
I had a similar but much more complicated problem... I wanted to determine if a type is assignable to collection type members or array type members dynamically.
So, here is better way how to get member type of collection or array dynamically with a validation if the type of an object to add is assignable to the collection or the array type members:
You're looking for the
GetGenericTypeDefinition
method:You'll want to look at GetGenericTypeDefinition for example:
This will output: