reflection.emit

    2热度

    1回答

    我想创建一个单独的应用程序域动态程序如下所示: string webProfilesNamespace = ConfigurationManager.AppSettings["Profiles.Web.Namespace"]; AssemblyName webAName = new AssemblyName(webProfilesNamespace); AppDomain webDomain

    3热度

    1回答

    我正在构建一个动态代理来拦截我正在编写的库中的一些方法。我可以成功创建我的代理类型,但是当我尝试实现属性设置器时,出现以下错误。 System.InvalidProgramException 附加信息: 通用语言运行时检测到一个无效的程序。 我发射的代码如下: public void Emit(FieldInfo interceptorField, MethodInfo metho

    4热度

    1回答

    首先,我想说这是为了一个大学项目,所以我没有寻找解决方案,只是帮助理解我做错了什么,所以我可以尝试修理它。 我需要动态创建一个继承另一个类的类。每个方法都需要调用基本方法,同时添加额外的代码(在这种情况下,将MethodInfo发送给静态方法,这样我就可以计算调用方法的次数)。 什么,我想要做的一个例子: public class A { public virtual void M1(

    0热度

    1回答

    我试图在运行时创建一个类型,在我添加到此类型上的每个属性上粘贴StuckAttribute属性。 类型构建: private TypeBuilder getTypeBuilder() { var typeSignature = "IDynamicFlattenedType"; var an = new AssemblyName(typeSignature);

    2热度

    1回答

    我正在为属性生成动态代理。 生成的代理来自我们想要代理的类型。 当代理需要访问从其派生而来的类型的(虚拟)属性时,不能使用OpCodes.Callvirt - 它会导致无限递归。因此我们需要拨打OpCodes.Call。我注意到,如果我有: public class MyParent { protected string _name; protected string _co

    -1热度

    1回答

    我想了解为什么这是无效的IL代码和/或什么会导致此故障。 引发的异常是: System.InvalidProgramException:无效IL代码在 away3d.containers.View3D:updateBackBuffer():IL_0023:brfalse IL_00ba 我拆开使用monodis和正在调用的方法(updateBackBuffer)并抛出错误如下,但我不能发现任何错误

    0热度

    2回答

    我正在发布基于用户输入的类。动态类很方便,因为用户可以随时回来并更改输入,程序将重新发布新类。 如果用户稍后回来并决定进行一些更改,则已存在于程序集/模块中的现有类需要刷新。如何删除动态类?

    1热度

    1回答

    我面临着“鸡还是蛋”的困境。 最后,在与CIL苦苦挣扎了数小时之后,我创建了一个使用System.Reflection.Emit & Activator.CreateInstance()方法生成的类的实例。但是,因为类是动态的,所以Visual Studio不知道该类,所以我不能真正使用它进​​行编码。如何使其可用并可供其他代码访问? 澄清: 我创建了一个动态类,它表示UI ListBox的内容。

    5热度

    1回答

    我有两个简单的类。 public class A { } public class B { } 我构建并实例化类如下所示的类C。 var assemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(new AssemblyName("Some.Namespace"), AssemblyBuilderAccess.Run);

    0热度

    1回答

    我想在不传递任何“内核”容器的情况下使用基于工厂的依赖注入,这样就无法实例化一个类,而不必从“顶部”明确传递它的依赖关系。 手动方式,这样做需要在引导这样的代码: static void Main(string[] args) { // simplified example, can require classes in reality ABFactory abF