我想将可移植类项目用于我的MVVM-Concept(在WPF和Silverlight之间共享dll)。
对于WPF,我想将Dot.Net 4.0和Silverlight目标定位到第5版。
可悲的是,便携式项目不支持我的视图模型的一些关键功能,如ObservableCollection。 好奇的是ObservableCollection在两个独立版本(Dot.Net 4.0和SL 5)中都受支持。
有谁知道我为什么不能使用这个系列?当我切换到Dot.Net 4.5时,它可用。
答案 0 :(得分:3)
这只是因为.NET 4.0是支持可移植库的.NET的第一个版本,我们没有时间使“ViewModel”类型(ICommand,ObservableCollection等)可移植。
技术原因是类型在Silverlight上的System.Windows.dll中,但它们在.NET Framework中的WPF程序集(我认为是PresentationCore.dll)中。在.NET 4.5中,我们将一个版本的System.Windows.dll添加到.NET Framework,并将类型转发到正确的位置。
答案 1 :(得分:0)
因为所选框架类型/版本的交集中不存在所讨论的类型。并非所有类型都存在。 PCL的本质是您可以仅使用所有目标共有的类型。
某些类型可以通过依赖Microsoft.Bcl
(在缺少的类型中添加)来在平台之间使用;但是,我不认为可观察的收藏品包括在内。