Utilisation de Reflection pour définir une propriété avec un type de liste

Comment utiliser la reflection pour créer une liste générique avec une classe personnalisée (List )? Je dois pouvoir append des valeurs et utiliser propertyInfo.SetValue(..., ..., ...) pour le stocker. Aurais-je intérêt à stocker ces listes dans une autre structure de données?

Modifier:

J’aurais dû préciser que l’object ressemble davantage à ceci, mais la réponse de Marc Gravell fonctionne toujours.

 class Foo { public List Bar { get; set; } } 

 class Foo { public ssortingng Bar { get; set; } } class Program { static void Main() { Type type = typeof(Foo); // possibly from a ssortingng IList list = (IList) Activator.CreateInstance( typeof(List<>).MakeGenericType(type)); object obj = Activator.CreateInstance(type); type.GetProperty("Bar").SetValue(obj, "abc", null); list.Add(obj); } } 

Voici un exemple de conversion du type List <> en List .

var list = typeof (List <>). MakeGenericType (typeof (string));