我正在尝试使用 System.Reflection.Emit 编写 .NET 编译器,如何进行类型解析?
我有一个从引用的 dll 解析类型的策略。我一直在尝试解析正在编译的程序集中定义的类型。我使用的是 System.Reflection.Emit api,没有第三方库。 例…
MethodBuilder.DefineParameter无法设置参数名称的原因?
我正在基于 WCF 问题的现有接口创建一个接口,但我的“DefineParameter”未设置参数名称(创建类型的方法参数没有名称)。 你能看出原因吗? public s…
如何使用 IL Emit 定义相互引用的两种类型
我需要使用反射 Emit 来定义类似的东西: public class Foo { public Bar Bar { get; set; } } public class Bar { public Foo Foo { get; set; } } …
使用委托调用构造函数
我发现这个但尝试使用它但失败了。 如何使用反射创建对象并通过将其放入委托中来使其快速? DynamicMethod dm = new DynamicMethod("MyCtor", t, new …
用于紧凑框架的 ILASM?
我正在 Compact Framework 上使用 Linq 表达式树(来自 db4o/Mainsoft/Mono 端口)。由于 System.Reflection.Emit 不存在,我无法将 LambdaExpression…
是否有可能从F(Type)到F的转变?没有反思,没有字典?
首先,简单介绍一下。 我必须起作用: static class C { static void F1(Type type) { // Do something to invoke F2 } static void F2() { // bla bl…
如何使用 Reflection.emit 发出显式接口实现?
请观察以下简单的源代码: using System; using System.Linq.Expressions; using System.Reflection; using System.Reflection.Emit; namespace A { p…
Reflection.Emit 比 GetValue 和 GetValue 更好设置值:S
我被告知使用 Reflection.Emit 而不是 PropertyInfo.GetValue / SetValue,因为这种方式更快。 但我真的不知道 Reflection.Emit 的内容是什么以及如何…
是否可以从 .NET 中的动态方法调用内部方法?
我正在尝试从动态生成的方法调用内部方法。 il代码很简单:ldarg_0、callvirt、ret。 执行该方法失败,并出现 TypeLoadException,表示无法加载定义内…
如何发出代码并将其注入到加载的程序集中?
我已经使用 System.CodeDom.CodeCompileUnit 动态构建了一些类型,想要将它们编译为内存中的 IL 代码,并将该 IL 代码注入到内存中加载的程序集中 - …
使用 Reflection.Emit 创建实现接口的类
我需要使用 Reflection.Emit 生成一个实现以下接口的类。 public interface IObject { T Get(string propertyName); } 有谁有一个例子来说明我如何将…
是否有工具可以简化 Reflection.Emit 的工作?
我需要动态生成一些类型。生成的类型有多个方法、构造函数、实现接口并定义静态构造函数。有没有可以帮助完成任务的工具? 我知道 这个 Reflector 插…
将 .NET 表达式树链接到新程序集中
我正在尝试编写我自己的玩具 My Toy Language -> MSIL 编译器,以便更好地了解编译器的工作原理。我的解析和词法分析工作正常,我已经构建了表达式树…