如何在Xamarin.iOS项目中使用AutoMapper?

如何在Xamarin.iOS项目中使用AutoMapper?,xamarin.ios,automapper,Xamarin.ios,Automapper,似乎当我在Xamarin.iOS项目中引用AutoMapper v3.1.0时,生成失败并显示以下错误消息: Error MT2002: Failed to resolve "System.Linq.Expressions.Expression System.Linq.Expressions.ExpressionVisitor::Visit(System.Linq.Expressions.Expression)" reference from "System.Core, Version=2.0.

似乎当我在Xamarin.iOS项目中引用AutoMapper v3.1.0时,生成失败并显示以下错误消息:

Error MT2002: Failed to resolve "System.Linq.Expressions.Expression System.Linq.Expressions.ExpressionVisitor::Visit(System.Linq.Expressions.Expression)" reference from "System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" (MT2002)
当我在添加此之前回滚到修订版时,一切正常

不幸的是,在我的单元测试中,我已经用AutoMapper做了很多工作,现在删除它会有问题。我想这是一个教训:仅仅因为它在测试中有效并不意味着它在Xamarin.iOS中有效

如果有人有任何想法,我将不胜感激

编辑:我现在在AutoMapper包中发现了一个MonoTouch目录,但是引用在中找到的
AutoMapper.dll
AutoMapper.iOS.dll
s并不能解决问题


编辑#2:此问题仅在为设备构建时发生-我猜MSIL到本机转换器由于某种原因不喜欢AutoMapper。我正试图找到一种方法来“提示”这个编译器我们需要这些符号,这就是我认为
linkerplaseinclude.cs
文件的目的。

这个问题暂时得到了解决-我不得不在AutoMapper中去掉有问题的符号并重新编译它。有关我删除的符号的更多信息,请参阅。在AutoMapper更新以解决此问题之前,您现在必须解决此问题

这一点的原因在中有简要的解释-基本上,.NET和Mono框架之间存在细微的差异,在这种情况下与AutoMapper不兼容


这个答案之前说过,您应该关闭链接以使用AutoMapper。虽然你可以为发展做这件事,它不适合生产使用,因为它会产生大量二进制文件,您将无法将应用提交到应用商店。

吉米·博加德似乎正在研究MonoTouch支持:我通过nuget安装的AutoMapper版本引用了名为
portable-windows8+net40+wp8+sl5+monoard+MonoTouch
所以看起来这是为了与MonoTouch一起使用。我也会将它添加到AutoMapper的wiki中!很好,我很高兴能帮上忙。顺便说一下,谢谢你的汽车制造商,吉米!