![](/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.