Assembly.ReflectionOnlyLoad 方法


命名空间:System.Reflection

程序集:mscorlib.dll, netstandard.dll, System.Runtime.dll, System.Reflection.dll

将程序集加载到只反射上下文中,在只反射上下文中可以检查但不能执行程序集。

重载

ReflectionOnlyLoad(Byte[]):加载来自基于通用对象文件格式 (COFF) 的映像的程序集,该映像包含已发出的程序集。 程序集被加载到调用方的应用程序域的只反射上下文中。

ReflectionOnlyLoad(String):将给定显示名称的程序集加载到只反射上下文中。

ReflectionOnlyLoad(Byte[])

加载来自基于通用对象文件格式 (COFF) 的映像的程序集,该映像包含已发出的程序集。 程序集被加载到调用方的应用程序域的只反射上下文中。

public static System.Reflection.Assembly ReflectionOnlyLoad (byte[] rawAssembly);

参数

rawAssembly   Byte[]

字节数组,它是包含已发出程序集的基于 COFF 的映像。

返回

Assembly

加载的程序集。

异常

ArgumentNullException

rawAssembly 为 null。

BadImageFormatException

rawAssembly 不是有效的程序集。

或 当前加载的是公共语言运行时 2.0 版或更高版本,而 rawAssembly 是用更高的版本编译的。

FileLoadException

无法加载 rawAssembly。

PlatformNotSupportedException

仅限 .NET Core:不支持此成员。

注解

不能执行加载到仅反射上下文中的程序集的代码。 若要执行代码,还必须使用 Load 方法将程序集加载到执行上下文中。仅反射上下文与其他上下文没有区别。 只能通过卸载应用程序域来卸载加载到上下文中的程序集。

ReflectionOnlyLoad(String)

将给定显示名称的程序集加载到只反射上下文中。

public static System.Reflection.Assembly ReflectionOnlyLoad (string assemblyString);

参数

assemblyString   String

程序集的显示名称,由 FullName 属性返回。

返回

Assembly

加载的程序集。

异常

ArgumentNullException

assemblyString 为 null。

ArgumentException

assemblyString 为空字符串 ("")。

FileNotFoundException

assemblyString 未找到。

FileLoadException

assemblyString 已找到,但无法加载。

BadImageFormatException

assemblyString 不是有效的程序集。

或 当前加载的是公共语言运行时 2.0 版或更高版本,而 assemblyString 是用更高的版本编译的。

PlatformNotSupportedException

仅限 .NET Core:不支持此成员。

依赖项不会自动加载到仅反射上下文中。不能执行加载到仅反射上下文中的程序集的代码。 若要执行代码,还必须使用 Load 方法将程序集加载到执行上下文中。是否将特定的权限授予程序集是基于证据的。 程序集和安全证据合并的规则如下所示:

在中编译的可执行C++文件上进行反射可能会引发 FileLoadException。 这很可能是由于C++编译器从可执行文件中去除重定位地址或 .reloc 部分所致。 若要保留 .reloc 地址,请在链接时指定 /fixed:no。

仅反射上下文与其他上下文没有区别。 只能通过卸载应用程序域来卸载加载到上下文中的程序集。

相关阅读 >>

appdomain与assembly的动态加载与卸载代码详解

assembly.ReflectionOnlyLoadfrom(string) 方法

assembly.ReflectionOnlyLoad 方法

更多相关阅读请进入《ReflectionOnlyLoad》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...