我的理解是,基于库设计人员选择支持的框架子集,可在许多平台上使用便携式类库。
我注意到,通过NuGet提供的许多库还包括一个特定于平台的实现,并想知道这有什么需要。
例如,Microsoft.Net.Http包有许多变体,包括:
为什么需要分发单独的.Net 4.0或WinRT版本的库?便携式类库还不够吗?
当我设计我自己的自定义便携式库时,我应该遵守这个约定吗?
首先,我并不是说便携式类库需要一小部分特定于平台的代码才能工作。它们通常有一个伴随的托管库,其名称以.PlatformServices结尾。但我说的是由NuGet包分发的核心库。
发布于 2014-02-28 14:31:33
当然,PCL版本可能足以满足您的需要。但是,当您创建自己的PCL类库项目时,您一定会发现.NET框架类和方法的子集非常小。该子集是通过获取完整的.NET框架并减去不能在另一个平台上工作的部分来创建的。
限制最大的平台是Silverlight和Phone7,它们基于.NETCore版本的CLR。以及存储和Phone8,基于通过WinRT api提供的服务。瞄准任何这些都会迅速减少您在库中可以做的事情的数量。
对Microsoft.Net.Http包进行了优化,如果您不受其中一个受限平台的限制,仍然可以使用一些与Http相关的方法和属性。您可以在包子目录中查看,提供IntelliSense的IntelliSense文件向您展示了在一个平台上什么是可能的,而不是在另一个平台上。我看到:
请注意,这些属性是用扩展方法映射的。
https://stackoverflow.com/questions/22095703
复制相似问题