![](/img/trans.png)
[英]Can I use System.Reflection.Emit to build a constructor for an existing type?
[英]Can I add a dynamic method to an existing type using System.Reflection.Emit?
我刚开始学习Emit命名空间 - 以下是否有效? 这引发了一个异常:
public class EmitTest
{
public void Test()
{
DynamicMethod dynMeth = new DynamicMethod("Foo", null, null, typeof(EmitTest));
ILGenerator gen = dynMeth.GetILGenerator();
gen.EmitWriteLine("Foo");
gen.Emit(OpCodes.Ret);
dynMeth.Invoke(null, null);
dynamic d = this;
d.Foo();
}
}
反正有没有按照预期进行这项工作,还是DLR的限制? 在这里,我创建了一个新的void方法Foo(),并将其创建为EmitTest类的成员。 运行时说EmitTest上找不到Foo()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.