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