我为同一个文件收到以下错误:LocationToLatLngValueConverter.cs
参考: https://github.com/MvvmCross/NPlus1DaysOfMvvmCross/tree/master/N-41-Maps
The type `System.ComponentModel.INotifyPropertyChanged` is defined in an assembly that is not referenced. You must add a reference to assembly `System.ObjectModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a`.
`D:\MVVMCross\MVVMCrossApps\MAP\Map\Map.Droid\Views\LocationToLatLngValueConverter.cs`
`Map.Droid.Views.LocationToLatLngValueConverter.Convert(Map.Core.ViewModels.Location, System.Type, object, System.Globalization.CultureInfo)': no suitable method found to override`
`D:\MVVMCross\MVVMCrossApps\MAP\Map\Map.Droid\Views\LocationToLatLngValueConverter.cs`
`Map.Droid.Views.LocationToLatLngValueConverter.ConvertBack(Android.Gms.Maps.Model.LatLng, System.Type, object, System.Globalization.CultureInfo)': no suitable method found to override D:\MVVMCross\MVVMCrossApps\MAP\Map\Map.Droid\Views\LocationToLatLngValueConverter.cs`
根据演示,提供了应用程序的所有内容。
我仍然无法摆脱这些问题。
答案 0 :(得分:13)
我在引用PCL的单元测试项目中遇到此错误。
它抱怨我没有引用System.Object
。问题似乎是由于我引用System.Runtime
- Resharper似乎想要添加它。
删除System.Runtime
的引用为我解决了问题。
答案 1 :(得分:1)
我已经查看了代码,这个转换器实际上没有任何问题。失败的原因是您有对System.ObjectModel和System.Runtime的引用,这些引用指向这些类的错误版本。你可以看到,因为Xamarin工作室的名字后面有一个“红色X”。
还引用了.net和其他软件包的非常具体的版本,不建议用于正常目的。
答案 2 :(得分:0)
我设法通过删除文件开头的所有using语句然后逐个添加它来解决这个问题。
Resharper最终建议我参考System.ObjectModel