Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf IObservable不明确引用错误_Wpf_System.reactive_Mscorlib - Fatal编程技术网

Wpf IObservable不明确引用错误

Wpf IObservable不明确引用错误,wpf,system.reactive,mscorlib,Wpf,System.reactive,Mscorlib,我正在WPF应用程序中使用被动扩展。在使用它的时候,我得到了模糊的参考错误 The type 'System.IObservable<T>' exists in both 'mscorlib.dll' and 'System.Reactive.dll' 类型“System.IObservable”同时存在于“mscorlib.dll”和“System.Reactive.dll”中 我也用完全限定的名字试过了,也试过了,但没有得到任何运气。我正在使用.NET4.0版本的被动扩展 我

我正在WPF应用程序中使用被动扩展。在使用它的时候,我得到了模糊的参考错误

The type 'System.IObservable<T>' exists in both 'mscorlib.dll' and 'System.Reactive.dll'
类型“System.IObservable”同时存在于“mscorlib.dll”和“System.Reactive.dll”中
我也用完全限定的名字试过了,也试过了,但没有得到任何运气。我正在使用.NET4.0版本的被动扩展

我的代码:

using System; // mscorlib.dll
using Rx = System.Reactive;

public Rx.IObservable<int> BytesReceived { get { return _bytesReceivedSubj; } } // Not valid as IObservable is in System namespace of System.Reactive.

public IObservable<int> BytesReceived { get { return _bytesReceivedSubj; } } // With this I'm getting ambiguous reference error
使用系统;//mscorlib.dll
使用Rx=系统无功;
public Rx.IObservable BytesReceived{get{return{u bytesReceivedSubj;}}}//无效,因为IObservable位于System.Reactive的系统命名空间中。
public IObservable BytesReceived{get{return\u bytesReceivedSubj;}}}//这样我就得到了不明确的引用错误

你知道我该怎么解决这个问题吗


感谢您在引用
IObservable

时,请使用

System.Reactive.IObservable<T>
System.Reactive.IObservable

System.IObservable
更新>>>

啊,现在你已经添加了图像,我看到你的问题了。您有两个System.IObservable类。。。那些反应迟钝的家伙真是白痴

不管怎样,看看这些帖子:


它并不漂亮,但应该对您有所帮助。

当您说您使用的是.Net 4版本的Rx时,您使用的是哪个版本的Rx?1.1还是2.x?如果使用2.x,则不应该引用System.Reactive,而应该引用System.Reactive.Core。我怀疑您从.Net 3.5升级了此项目,但没有更新所有必要的参考资料。确保您使用的Rx版本不适用于Silverlight 4或.Net 3.5(其核心中没有IObservable/IObserver)


如果您只是删除对reactive的引用,并让nuget使用reactive Extensions-WPF Helpers版本为您重新添加它们,这可能是最简单的。注意:如果您使用的是在旧版System.Linq命名空间中具有扩展方法的旧版本,则可能需要使用Rx来更改类的导入,以导入System.Reactive.Linq。

错误是不言自明的。您有两个库,它们都有
IObservable
的定义,因此您必须澄清您试图使用哪一个库。它们都位于“系统”名称空间中,并且与我使用mscorlib中的System for EventHandlers和所有库的形式相同。那么,我如何在这里为IObservable提供完全限定的名称呢?如果我使用System.IObservable,那么它将再次给我不明确的引用错误你在哪里?@Kevin,不,我没有额外的系统。我的表单中有被动声明。这不是原因。。。他一定是在升级后引用了错误的版本@JimWooley是对的。称人们为白痴是不合适的,尤其是当他们不是白痴的时候。
System.IObservable<T>