在System.Collections.ObjectModel中找不到ObservableCollection

时间:2011-08-04 21:24:28

标签: .net wpf observablecollection

两个WPF项目,同一台机器,浏览Collections.ObjectModel

一个人有ObservableCollections并说

// Type: System.Collections.ObjectModel.ObservableCollection`1
// Assembly: System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// Assembly location: C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\System.dll

另一个(从3.0项目升级)没有并且说

// Type: System.Collections.ObjectModel.Collection`1
// Assembly: mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// Assembly location: C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll

为什么使用System.Collections.ObjectModel的第二个引用如此不同?

3 个答案:

答案 0 :(得分:3)

您正在寻找两种不同的类型。不同程序集中的类型可以位于同一名称空间中。

由于升级后的项目不包含对System.dll程序集的引用(在3.0中,它位于Windowsbase.dll中),因此它不会包含ObservableCollection。如果添加对该程序集的引用,则可以访问该集合。

答案 1 :(得分:0)

查看系统程序集“v4.0 \ Profile \ Client \ System.dll”与“Framework \ v2.0.50727 \ mscorlib.dll”的结尾

该项目设置为使用客户端配置文件。转到项目属性并选择完整的.Net 4配置文件。

答案 2 :(得分:0)

我有多个项目。主要项目设置为.net 4,但引用的项目仍然是.net 3.5,它引用了2.0 mscorlib。