ReflectionOnlyLoad和Load是不一样的,ReflectionOnlyLoad只将Assembly加载到所谓的reflection-only context里面,是什么意思呢,这个context里面,你只能查看一个Assembly里面定义了多少个类型,类型有多少函数等等,但是不能通过反射来创建类型的实例,也不能执行代码。
另外ReflectionOnlyLoad只加载指定的Assembly,不会解析Assembly的依赖项,也就是说,如果你有一个Assembly A,依赖于B,但是你把B删掉了,那么Assembly.Load("A")会扔出一个FileLoadException,而ReflectionOnlyLoad则不会。
之所以提供ReflectionOnlyLoad,是为了让你在一个.NET平台(例如微软的CLR)看为其他.NET平台(例如mono)设计Assembly,因为不同平台之间有些实现,例如Assembly的解析呀,可能有差别。
浙公网安备 33010602011771号