在 System.AddIn(又名 MAF)管道适配器中,需要手动将值从一种 DTO 类型复制到另一种 - 从 HostView 类型到 Pipeline Contract 类型以及从 Pipeline Contract 类型到 AddIn 视图类型(然后再返回)。这似乎是使用自动映射器的理想情况。
但是,我不确定在 HostView 和 AddInView 适配器中使用和打包 3rd 方程序集的正确方法,尤其是当 AddIn 激活在单独的 AppDomain 中时。
我尝试了以下方法:
将 automapper 的 nuget 引用添加到 AddIn 适配器项目并在其中创建映射配置文件。(我对初始化配置文件的适配器使用了静态 ctor,因为 MAF 负责实例化适配器。)
与直觉相反,为了让管道定位并激活适配器支持的插件,我必须确保 automapper DLL 位于我主机的 bin 目录中- 在实际适配器 DLL 旁边的“AddInAdapters”文件夹中拥有 automapper DLL没有效果。
通过这种安排,我能够在我的开发盒上找到并激活插件(win 7)。但是完全相同的二进制文件在 Server2008R2 上不起作用。(我知道,我知道:我无法控制开发或服务器操作系统的选择)
我们正在使用(和目标).Net 4.5.1 - 是的,它在桌面和服务器上。我们正在使用 automapper 2.2.1 - 不,它不在我的开发箱的 GAC 中
适配器使用的第 3 方程序集应位于何处(插件端和主机端)。尤其是在考虑 AppDomain 隔离时
为什么上述安排适用于 Windows 7,而不适用于 2008R2?