根据可移植类库的文档,可移植类库中的 ViewModel 支持在 .NET Framework 4 中不存在,但在 .NET Framework 4.5 中存在。不幸的是,这使得采用便携式类库成为一个棘手的提议,因为我们大约一半的客户仍在使用 XP,因此无法升级到 4.5。
有趣的是,必要的类(如http://msdn.microsoft.com/en-us/library/gg597391(v=vs.100).aspx#sectionToggle3和http://msdn.microsoft.com/en-中所述us/library/gg597391.aspx#mvvm)确实存在于 .NET Framework 4 中。据我所知,应该可以发送一个 System.Windows.dll 将类型转发到适当的 .NET Framework 4 dll,如果我放弃 INotifyDataError(以及随附的 DataErrorsChangedEventArgs)。
是否可以简单地使用 .NET Framework 4.5 附带的 System.Windows.dll,去除对 INotifyDataError 和 DataErrorsChangedEventArgs 的引用,在必要时将对 System.dll 的引用重定向到 PresentationCore.dll,然后引用该可重定向系统项目中的 .Windows.dll 注定要在 .NET Framework 4 上运行?或者如果项目偶然在 .NET Framework 4.5 上运行,我会遇到难以调试的阴影问题吗?