Portable Class 4.0:缺少功能

本文关键字:功能 Class Portable | 更新日期: 2023-09-27 17:58:46

我想为我的MVVM概念使用可移植类项目(在WPF和Silverlight之间共享dll)。

对于WPF,我希望以Dot.Net4.0和Silverlight为目标版本5。

遗憾的是,这个可移植项目不支持我的视图模型的一些关键功能,比如ObservableCollection。奇怪的是,ObservableCollection在两个独立版本(Dot.Net 4.0和SL 5)中都支持。

有人知道我为什么不能使用这个收藏吗?当我切换到Dot.Net 4.5时,它是可用的。

Portable Class 4.0:缺少功能

这只是因为.NET 4.0是第一个支持可移植库的.NET版本,而我们没有时间使"ViewModel"类型(ICommand、ObservableCollection等)可移植。

技术原因是这些类型位于Silverlight上的System.Windows.dll中,但它们位于.NET Framework中的WPF程序集(我认为是PresentationCore.dll)中。在.NET 4.5中,我们将System.Windows.dll的一个版本添加到.NET Framework中,并在正确的位置键入forwards。

因为所选框架类型/版本的交集中不存在有问题的类型。并非所有类型都存在。PCL的本质是,您只能使用所有目标通用的类型。

某些类型可以通过依赖Microsoft.Bcl在平台之间使用(这增加了缺失的类型);然而,我不认为可观察的集合包括在这里面。