在我的Xamarin项目中,我使用的是ReactiveUI和Firebase.Xamarin。同时使用这两个库时,任何尝试使用System.Reactive.Linq.Observable
扩展方法(如Where
或Select
(都会导致编译时错误:
调用在以下方法或属性之间不明确:"System.Reactive.Linq.Observable.Where(System.IObservable, System.Func("和"System.Reactive.Linq.Observable.Where(System.IObservable, System.Func(">
我认为这是由这两个库在同一命名空间中定义/引用相同的方法引起的。我该如何解决这个问题?
您可能正在加载定义该命名空间的程序集的多个版本。可能是您引用的程序集加载了公共依赖项。如果他们加载该程序集的不同版本,则会收到此错误。
确保使用依赖于同一版本的依赖程序集的两个库的版本。
Firebase.Xamarin不再维护,所以如果我想遵循@PhilipSmith建议,我将不得不使用超过2年的ReactiveUI版本。我不想这样做,所以我决定克隆Firebase.Xamarin,因为它的OSS,并将其作为另一个项目添加到我的解决方案中,目的是改变它引用的ReactiveUI版本。但是当我添加为引用项目时,错误消失了。