![](/img/trans.png)
[英]How to add an object to a generic list property of an instance of a class using reflection
[英]How to add an object to an existing list using reflection
使用 EntityFrameworkCore 连接到数据库,在创建所有表和 DbContext 的模型后,我创建了一个名为 myContext 的上下文的新对象,该对象具有 List 类型的属性(名称为 listName)。 我想创建一个新对象并将其添加到列表中。 一切正常,但最后一行代码:
myList.GetType().GetMethod("Add").Invoke(myList, new[] {myObj});
抛出System.Reflection.TargetInvocationException类型的异常
这是整个代码:
private void AddNewObjectToThisList(string listName) {
var myList = myContext.GetType().GetProperty(listName).GetValue(myContext);
var objType = myList.GetType().GetGeneric Arguments().Single();
var myObj = Activator.CreateInstance(objType);
myList.GetType().GetMethod("Add").Invoke(myList, new[] {myObj});
}
我想确定代码是正确的。 它是。 问题是向表 (myList) 中插入新记录。 myList 应该有一个主键。 分配了一个键后,问题就解决了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.