平台相关库的托管代理dll
本文关键字:代理 dll 平台 | 更新日期: 2023-09-27 18:05:40
由于某种原因,我有两个. net管理的dll依赖于平台(x86/x64)。两者都有相同的公共接口。
我需要从AnyCPU项目中引用它们。但是它们不能简单地在运行时加载,因为我的代码使用那些dll暴露的接口。
是否有可能创建代理dll来代表那些平台依赖库的接口,并在运行时为每个平台动态加载特定平台的dll并转发对它的调用?
似乎"嵌入式互操作类型"功能看起来类似于我需要的,但它不是一个COM库。
任务是否可行?
嗯,你已经用最好的和推荐的实践回答了你的问题。
- 使用通用接口定义创建AnyCPU程序集。
- 在你的应用中引用这个程序集,以及那两个程序集。
- 根据运行的体系结构执行运行时加载,实例化并强制转换到公共接口 利润
请查看这里如何在运行时选择正确的DLL的建议