我没有找到类似的问题,让我们看看是否成立: - )。
我想在“普通”即普通的Windows x86 C#项目中使用基于C#的PCL库(而不是仅在跨平台(Xamarin)项目中使用它们。)
这样做的原因基本上是遗留项目的后端移植:我想切换到未来项目的PCL代码,并在旧代码中使用新功能。可以想象,这些项目至少部分是为旧版本的C#运行时开发的(即4.0)。
我的问题是:我可以期待这些库的行为相似,这意味着如果我的基本单元测试通过,我很高兴去吗?或者是否有随机行为使得难以验证库的正常运行?我特别担心我读到的有关HttpClient代码意外行为的文章/问题,但在各种运行时版本(4.0 - 4.5)中甚至不一致。因此,团队将追逐无法复制的问题并破坏支持团队的周末:-P。
我不确定这个问题在各个方面是否易于理解,如果有意义,请告诉我。如果它太令人困惑,我可以在人们提出建议之后重新措辞......
答案 0 :(得分:0)
在PCL的项目属性中,您可以查看.Net的哪些版本以及您希望支持的平台。 在后台,您选择geht映射到一个可移植的子集配置文件,其中只有那些API可用,所有选定平台都支持这些API。
(虽然PCL不是Xamarin特定的东西。)
在某些情况下,平台实现细节会泄漏,例如计时器(它们甚至不包含在某些便携式子集中)。
您的单元测试可能会通过,一旦您发现某些特定问题,您仍然可以在那里添加其他测试。
对于HttpClient,我建议依赖注入一些特定于平台的客户端(例如modernhttpclient)只是出于性能原因。