平台相关库的托管代理dll

本文关键字:代理 dll 平台 | 更新日期: 2023-09-27 18:05:40

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

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

是否有可能创建代理dll来代表那些平台依赖库的接口,并在运行时为每个平台动态加载特定平台的dll并转发对它的调用?

似乎"嵌入式互操作类型"功能看起来类似于我需要的,但它不是一个COM库。

任务是否可行?

平台相关库的托管代理dll

嗯,你已经用最好的和推荐的实践回答了你的问题。

  1. 使用通用接口定义创建AnyCPU程序集。
  2. 在你的应用中引用这个程序集,以及那两个程序集。
  3. 根据运行的体系结构执行运行时加载,实例化并强制转换到公共接口
  4. 利润

请查看这里如何在运行时选择正确的DLL的建议