我有一个代码,如下所示:
Assembly assembly = Assembly.LoadFrom("ReflectionTest.dll");
Type myType = assembly.GetType(@"ReflectionTest.TestObject");
var x = Convert.ChangeType((object)t, myType);
//List<myType> myList = new List<myType>();
//myList.Add(x);
代码的注释部分是我陷入困境的地方。我从服务中获取一些对象,并且转换也工作正常。我正在尝试填充此类对象的列表,稍后将绑定到 WPF DataGrid。
任何帮助表示赞赏!
var listType = typeof(List<>).MakeGenericType(myType)
var list = Activator.CreateInstance(listType);
var addMethod = listType.GetMethod("Add");
addMethod.Invoke(list, new object[] { x });
您也许可以投射到IList
并打电话Add
直接而不是通过反射查找方法:
var list = (IList)Activator.CreateInstance(listType);
list.Add(x);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)