簡體   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