Portable Class 4.0:缺少功能

时间:2014-04-16 12:31:59

标签: c# wpf visual-studio mvvm portable-class-library

我想将可移植类项目用于我的MVVM-Concept(在WPF和Silverlight之间共享dll)。

对于WPF,我想将Dot.Net 4.0和Silverlight目标定位到第5版。

可悲的是,便携式项目不支持我的视图模型的一些关键功能,如ObservableCollection。 好奇的是ObservableCollection在两个独立版本(Dot.Net 4.0和SL 5)中都受支持。

有谁知道我为什么不能使用这个系列?当我切换到Dot.Net 4.5时,它可用。

2 个答案:

答案 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(在缺少的类型中添加)来在平台之间使用;但是,我不认为可观察的收藏品包括在内。