针对平台相关库的托管代理dll

时间:2015-07-29 22:25:30

标签: c# .net dll

由于某种原因,我有两个依赖于平台的.NET托管dll(x86 / x64)。 两者都有相同的公共接口。

我需要从AnyCPU项目中引用它们。但是它们不能简单地在运行时加载,因为我的代码使用那些dll公开的接口。

是否有可能创建代表这些平台相关lib编译时间的接口的代理dll,并在每个平台的运行时平台特定dll中动态加载并转发对它的调用?

似乎“嵌入式互操作类型”功能看起来与我需要的类似,但它不是COM库。

这是否可行?请提出建议可能有所帮助。

1 个答案:

答案 0 :(得分:0)

嗯,您已经使用最佳和推荐的做法回答了您的问题。

  1. 使用通用接口定义创建AnyCPU程序集。
  2. 在您的应用中引用此程序集,以及这两个程序集。
  3. 根据运行的体系结构执行运行时加载,实例化并转换为公共接口
  4. 利润
  5. 还请查看here以获取有关如何在运行时选择正确的DLL的建议