两个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的第二个引用如此不同?
答案 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。