我注意到有一个System.Reflection.Assembly的方法,就是Assembly Load(byte[] rawAssembly)。
我想知道是否有像byte[] Store(Assembly assembly)这样的相反操作。如果不是,我如何将程序集对象转换为byte[],以便完全在内存中调用Assembly Load(byte[] rawAssembly),而不将程序集写入文件?谢谢!
备注:这个问题来自于我使用的第三方库返回一个Assembly实例,并且我必须使用反射来调用它的方法。我不知道这个库是如何创建这个组装对象的。我只是想知道是否可以将程序集对象存储到byte[]中,并使用“assembly Load(byte[] rawAssembly)”重新加载它。谢谢!
发布于 2019-01-26 04:02:42
要将程序集从AppDomain转换为byte[],请使用:
var pi = assembly.GetType().GetMethod("GetRawBytes", BindingFlags.Instance | BindingFlags.NonPublic);
byte[] assemblyBytes = (byte[]) pi.Invoke(assembly, null);https://stackoverflow.com/questions/16883687
复制相似问题