通过这种方式可以直接对接口实例化了(伪),动态的通过委托来实现接口,匿名类型是在运行时动态构建的。 实现思路: 使用AssemblyBuilder、TypeBuilder构建类型,并用FieldBuilder构建一个字典字段<String, Delegate>,用来保存函数名和匿名函数,MethodBuilder构建方法并使用IL流填充,调用保存的匿名函数表中的函数。 构建动态类型的方法要求传入一个<String, Delegate>函数字典,可以使用字典的初始化器来初始化匿名函数来达到实现…
通过这种方式可以直接对接口实例化了(伪),动态的通过委托来实现接口,匿名类型是在运行时动态构建的。 实现思路: 使用AssemblyBuilder、TypeBuilder构建类型,并用FieldBuilder构建一个字典字段<String, Delegate>,用来保存函数名和匿名函数,MethodBuilder构建方法并使用IL流填充,调用保存的匿名函数表中的函数。 构建动态类型的方法要求传入一个<String, Delegate>函数字典,可以使用字典的初始化器来初始化匿名函数来达到实现…
扩展方法可以使对象增加额外的“看似是成员”的方法。 普通的实例类型定义: public class InstanceClass { public int a = 3; public void instanceMethod() { this.a = 122; } } 扩展方法的定义: public static class InstanceClassExt { public static void Ext(this InstanceClass _this) { _this.a = 5; } } 分别对成员实例方法和扩…
COPYRIGHT © 2014-2023 雪千渔Blog. ALL RIGHTS RESERVED.
Theme Kratos Made By Seaton Jiang