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时,它是可用的。
这只是因为.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
在平台之间使用(这增加了缺失的类型);然而,我不认为可观察的集合包括在这里面。