J'essayais d'ajouter des éléments à IList par réflexion, mais lors de l'appel de la méthode "Add", une erreur était renvoyée "object ref. Pendant le débogage, j'ai appris que GetMethod ("Add") renvoyait une référence NULL.Ajout d'éléments à la liste <T> en utilisant la réflexion
Type objTyp = typeof(MyObject); //HardCoded TypeName for demo purpose
var IListRef = typeof (List<>);
Type[] IListParam = {objTyp};
object Result = IListRef.MakeGenericType(IListParam);
MyObject objTemp = new MyObject();
Result.GetType().GetMethod("Add").Invoke(Result, new[] {objTemp });
Aidez-nous s'il vous plaît.
J'ai beaucoup travaillé avec la réflexion il y a quelque temps, et j'en suis arrivé à la conclusion que je n'aimais pas la surcharge de 'GetMethod (string)', parce que je ne savais pas si elle reviendrait. Essayez plutôt d'utiliser 'GetMethod (string, Type [])' ou 'GetMethod (string, BindingFlags)'. Peut-être que ça ne marcherait pas, et ça pourrait être juste que je sois paranoïaque, mais je me souviens avoir eu beaucoup de confusion sur des problèmes similaires auparavant. – Alxandr