Lambda表达式编译方法
我有几行代码
public void CreateMethod<TContract>(Expression<Action<TContract>> method)
{
var innerMethod = Builder.DefineMethod("SomeName",MethodAttributes.Private);
method.CompileToMethod(innerMethod);
//more code
}
但是第二行失败了。我尝试过不同版本的 DefineMethod,但运气不佳。 有什么建议吗?
I Have a few lines of code
public void CreateMethod<TContract>(Expression<Action<TContract>> method)
{
var innerMethod = Builder.DefineMethod("SomeName",MethodAttributes.Private);
method.CompileToMethod(innerMethod);
//more code
}
However the second line fails. I've tried with different versions of DefineMethod with little luck.
Any suggestions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不幸的是,CompileToMethod 需要一个静态方法作为其参数(请参阅此处< /a>)。因此,您需要将
MethodAttributes.Static
添加到innerMethod
的定义中。Unfortunately,
CompileToMethod
requires a static method as its argument (see here). Therefore, you need to addMethodAttributes.Static
toinnerMethod
's definition.