Mvvmlight和Xamarin.iOS无法找到默认的ctor

时间:2015-08-19 16:07:30

标签: xamarin.ios mvvm-light

我有一个在Android和WinPhone 8上正常运行的项目。当我尝试在iOS上运行时,我收到以下错误

  

Microsoft.Practices.ServiceLocation.ActivationException:不能   register:在x

中找不到公共构造函数

其中x是流量首先点击的SimpleIoc.Default.Register<T, TU>();。我已移动代码(如其他地方所示),以确保在SimpleIoc中进行所有特定于平台的ViewModelLocator调用。

我在抱怨错误的类中添加了公共默认ctors(虽然我已将PreferredConstructor设置为原始版本,而不是新添加的公共ctor。)

我有一种感觉,这个错误是误报(其他东西是失败的,但是指着那段代码)。

通过构建服务器使用Xam.iOS(代码来自VS2015)。 Xcode正在运行8.3仿真器(可能需要更新才能进行8.4测试)

2 个答案:

答案 0 :(得分:2)

如果构造函数认为它没有被使用,那么它可能正在优化构造函数。尝试将链接器选项设置为“不链接”并查看它是否再次执行,或者甚至在其他地方新建该类的实例,以便链接器知道使用了构造函数。你不一定要这样离开,但如果它消除了错误,你至少会知道原因。

答案 1 :(得分:0)

[保留] 属性为我做了诀窍。 用它装饰构造函数并保留链接器设置。

此属性是Microsoft.WindowsAzure.MobileServices名称空间的一部分。