将通过 Reflection.Emit 生成的类型保存为代码文件 (.cs),而不是将其保存在 .dll 文件中
在开始之前,让我先讲一下我的经验:我对 C#.NET、Web 服务、XML 部分等方面有丰富的经验。反射对我来说是新事物,尽管我已经广泛阅读了它并尝试了一…
使用 Reflection.Emit 发出对象数组时出现问题
我正在尝试发出我认为是一个简单的对象数组,该数组将生成类似于以下示例的代码 object[] parameters = new object[] { a, b, }; 当我使用 VS 在 C# …
使用 Reflection.Emit 匹配现有构造函数
首先,这是 C# 代码和反汇编的 IL: public class Program { private List _items; public Program(T x, [Microsoft.Scripting.ParamDictionary] Micr…
在哪里可以找到有关 .NET 中多维 System.Array 实例的 Get、Set 和 Address 方法的信息?
System.Array 作为所有数组的基类公共语言运行时 (CLR)。根据这篇文章: 对于每种具体数组类型,运行时添加了三个特殊方法:Get/Set/Address。 事实上…
Reflect.Emit 动态类型内存爆炸
使用 C# 3.5,我尝试使用反射发射在运行时生成动态类型。我使用 Microsoft 的动态查询库示例来创建类生成器。一切正常,我的问题是 100 个生成的类型…
使用 Reflection.Emit 发出从另一种类型派生的类型和接口
我有一个类 A,它实现接口 I: class A: I { // implementation of I } 还有另一个接口 J,它扩展了 I: interface J : I { // J methods and propert…
NHibernate / Fluent NHibernate 动态列映射
我有一个表,它的一些列在编译时是未知的。此类列可以是整数值,也可以是某个枚举值。有一个表保存了此类动态列的所有名称,并且还保存了列的类型。此…
Reflection.Emit 与 CodeDOM
使用 Reflection.Emit 库与 CodeDOM 在运行时动态生成代码相比,有哪些优缺点? 我正在尝试根据运行时可用的元数据在系统中生成一些(相对复杂的)动…
如何发出 System.Linq.Expression?
我有一些代码使用 System.Linq.Expressions 和 Expression.Lambda.Compile 生成各种 Func<> 委托() 等。我希望能够将生成的函数序列化为程序集以供以…
如何向在发出时类型未完成的委托发出调用?
我在发出对其类型在发出时未完成的委托的调用时遇到问题。我将详细说明:我已经声明了以下委托类型: // Delegate type. The 'firstArgument' will be…
使用 Reflection.Emit 将自定义属性复制到另一个方法
我正在尝试根据现有接口生成一组新的 wcf 接口。 我正在使用 Reflection.Emit 命名空间来完成此任务。我的问题是如何将旧的自定义属性从一种方法复制…
如何使用 C# 4.0 中的 AssemblyBuilder 生成虚拟属性?
我目前正在努力创建具有虚拟属性的程序集。 MSDN 上的示例仅创建普通属性。如何在具有虚拟属性的程序集中创建一个类? 我希望能够生成这样的类: publ…
Reflection.Emit 的 Java 等效项
据我所知,Java 没有与 C# 的 Reflection.Emit 等价的东西。 Java 是否有提供类似功能的其他库? (与反射发射)有什么区别?…