59、.NET反射与动态代码生成:深入System.Reflection.Emit命名空间

.NET反射与动态代码生成:深入System.Reflection.Emit命名空间

1. 反射概述

在.NET中,反射具有多种用途。一方面,可利用 System.Reflection 命名空间下的类型进行运行时类型检查和后期绑定对象创建;另一方面, System.Reflection.Emit 命名空间支持动态代码创建。动态代码创建意味着程序员能够在代码中通过编程方式创建如方法和事件等代码结构,这些代码元素可添加到由 AssemblyBuilder 对象表示的动态程序集中。动态程序集既可以保存为PE(可移植可执行)文件(通常为DLL形式),也可以直接发射到内存中立即使用,但会牺牲持久性(当包含的 AppDomain 终止时,仅存在于内存中的类型会消失)。

2. TypeFilter委托

TypeFilter 是一个委托,它映射到一个函数,该函数会逐个应用于 System.Type 对象列表。过滤器会遍历列表,如果委托返回 true ,则过滤后的列表包含该对象,否则将其排除。

public delegate bool TypeFilter(Type m, object filterCriteria);

此委托会传递给 Module.FindTypes() System.Type.FindInterface

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值