当使用DynamicMethod的它可以调用方法和访问字段如果您在DynamicMethod constructor使用MethodBuilder生成动态IL时,是否可以跳过可见性检查?
的restrictedSkipVisibility参数提供“真”,这将是其他方式不可访问产生IL我宁愿发出的动态IL成动态组装相反,我可以在生成时将生成的IL保存到程序集中。如果我使用这种方法,我必须使用MethodBuilder而不是DynamicMethod。不过,我需要能够跳过可见性检查,以便在运行动态代码时不会出现MethodAccessException。有没有办法做到这一点,如果是的话如何?
问题解决了吗?你能简单描述一下你是如何解决它的? – kizzx2 2011-05-04 09:49:42
不可以。据我所知,它是不可解的。通过使用Mono.Cecil库重新编写程序集,我最终采用了另一种解决方案。这样我就可以访问私人或内部成员而不违反类型安全规则。但是,用这种方法,我无法使符号与源文件正确匹配,导致其他烦恼。 – 2011-05-10 20:27:20