繁体   English   中英

如何使用反射将对象添加到现有列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM