问题:我有DLL格式的开发代码和生产代码,我希望能够比较每个代码的结果。这一切都需要在相同的运行时间内发生。
我在寻找:只需加载开发DLL的代码,存储结果,然后打开prod dll,存储结果,然后比较两者的结果。
当前策略:我正在考虑立即使用app域,但我还没有找到任何非常清晰的代码示例,只是简单地展示了如何加载DLL,运行方法从该DLL,并存储该DLL的结果。应用程序域的概念对我来说仍然是模糊的,因为它似乎是从它调用的代码外部,因此存储来自这种外部应用程序域的结果对我来说有点混乱。
无论如何,我真的对一个简单的例子很感兴趣,它演示了如何加载DLL并从中运行代码,存储结果,以及加载同一DLL的另一个版本并执行相同的操作。
任何帮助都将非常感激!谢谢!
答案 0 :(得分:7)
我建议给this article一个读数。他们的示例使用extern alias指定同一DLL的两个不同版本。
在使用部分上方创建别名:
extern alias oldVer;
extern alias newVer;
using System;
.
.
.
添加引用并为每个引用分配适当的别名。您可以在其属性中指定要与Reference一起使用的别名:
准备好别名后,您可以执行以下操作:
Console.WriteLine(oldVer::MyLibrary.MyClass.method());
Console.WriteLine(newVer::MyLibrary.MyClass.method());