2
動態創建委託我想創建一個通用委託,但我只知道執行時的類型。從類型名稱
這裏是我想創建委託:
public delegate void MyDel<T>(T t,string msg);
這裏是我想要實例化和使用委託方法
Type typeSet = set.GetType();
MethodInfo method = typeSet.GetMethod("Add");
Delegate test = Delegate.CreateDelegate(typeof(MyDel<typeSet>, method);
其中排版是不明我在彙編。 不幸的是,我想要調用的方法不是靜態的。
有沒有人有任何想法?
在此先感謝
感謝您的答覆,我現在怎麼打電話給委託人?像這樣:if(test!= null) { MyDel <> myDel =(MyDel <>)test; myDel(「blabla」); } – user1005016
@ user1005016:如果您有參數並且可以合理確定它們沒問題,您可以使用'Delegate.InvokeDynamic',但是您不知道委託的編譯時類型。 –
我想調用實體框架DbSet實體上的「添加」方法 public delegate void DelegateAddObject(T t,DbSet entity); 輸入contextType =(context as Object).GetType(); var set =(contextType.GetProperty(entitySetName))。GetValue(context,null); 類型typeSet = set.GetType(); MethodInfo method = typeSet.GetMethod(「Add」); 類型template = typeof(DelegateAddObject <>); 類型特定= template.MakeGenericType(typeSet); Delegate test = Delegate.CreateDelegate(specific,method); 其中context是我的dataContext。 但我得到以下錯誤:**錯誤綁定到目標方法** –
user1005016