将Assembly保存为适合Assembly.Load的字节数组

时间:2011-06-07 13:33:53

标签: c# .net reflection assemblies

我注意到Assembly.LoadFrom具有以下重载

public static Assembly Load(
    byte[] rawAssembly
)

如何将程序集另存为字节数组,以便像这样创建它?

上下文:我想编写一个测试工具,以确保服务的后向兼容性。我想将客户端的固定版本加载到我的线束中,并从许多不同版本调用该服务。我认为将旧版本保存为byte []可以让我冻结它们。

2 个答案:

答案 0 :(得分:5)

如果您将旧版本作为文件(就像它们通常构建的那样),那就是您所需要的一切。如果需要,可以将它们读入字节数组(例如,使用File.ReadAllBytes)。

听起来你只需要将旧的二进制文件保留在源代码控制中。

答案 1 :(得分:1)

像这样:

byte[] assemblyBytes = File.ReadAllByes(assemblyPath);

请注意,您必须先加载相关装配。