我想学习使用某些客户端代码想要的签名动态创建方法的巧妙技巧。就像System.Delegate.BeginInvoke
,EndInvoke
和Invoke
方法一样。
我正在System.Delegate
类中查找这些方法,但找不到它们(除了DynamicInvoke
,这并不有趣,因为它无论如何都会动态地调度对后期绑定方法的调用),因此显然这些方法是在运行时创建的。
如果我必须实施这样的事情,我会怎么做,我正在摸不着头脑。我在大声思考:
1) 代码 DOM 不起作用,因为我对构建新程序集不感兴趣。我只想在同一个程序集中的一个类中添加一个新方法。
2)好的旧反射会很好用。我可以创建一个MethodInfo
与客户端代码指定的参数相同的新对象,但是如何让这个新事物MethodInfo
作为方法出现在我的类中?
任何人都可以阐明这一点吗?