通过Assembly.Load(byte[] rawAssembly, byte[] rawSymbolStore)
加载程序集后,是否可以从创建的Assembly实例中检索rawSymbolStore数据?调用转发到此方法,我无法看到它的作用..
[MethodImpl(MethodImplOptions.InternalCall)]
internal static RuntimeAssembly nLoadImage(byte[] rawAssembly, byte[] rawSymbolStore, Evidence evidence, ref StackCrawlMark stackMark, bool fIntrospection, SecurityContextSource securityContextSource);
我想要做的是将Assembly实例序列化为两个字节数组,并将它们发送到远程机器上以便加载。
答案 0 :(得分:1)
是否可以从创建的Assembly实例中检索rawSymbolStore数据?
没有。程序集的.pdb文件是磁盘上的单独文件。它包含程序集的调试符号,通常可以在项目的构建目录中找到它。您可以将.pdb文件与.dll一起部署,但这是可选的。它仅用于在异常堆栈跟踪中显示文件+行号信息。
您必须使用类似File.ReadAllBytes()的调用来获取所需的byte []。 Assembly.Location属性应该有助于找到程序集的.pdb文件。如果你没有部署它,或者ReadAllBytes失败,那么为第二个参数传递null。