我有一个Windows Phone 7.1项目,其中包含针对SL4,.Net4.5,WP7.5,Store Apps的可移植类库,但这不可用:http://msdn.microsoft.com/en-us/library/dd642331.aspx
它说应该可以在.Net 4.5中使用。当然我可以自己编程,但我更喜欢使用框架提供的功能。
如果我更改为Windows Phone 8(并删除SL4),则可以使用。任何可能使其针对WP7.5 / SL4工作的黑客攻击?
答案 0 :(得分:2)
你需要自己为WP7.5和SL4实现它。但是,你可以这样做,以便在已经支持它的平台上(即.NET 4.5,WP8等),它将使用内置版本(因此你可以与使用“官方”版本的其他库共享它)
基本上,将您的实现创建为针对您想要的所有平台的PCL。然后创建另一个针对支持System.Lazy的平台的PCL。第二个库应该具有与第一个库完全相同的程序集标识,但它不应该具有该类型的实现,而应该使用TypeForwardedToAttribute转发到该类型的现有版本。
然后,针对更广泛平台的PCL可以使用您创建的第一个程序集,而针对较窄平台的特定于平台的项目或PCL可以引用第二个程序集。通过将它们打包到NuGet包中,您可以轻松地从正确的项目中引用正确的程序集版本。