我没有找到类似的问题,让我们看看这是否成立:-)。
我想使用基于C#的PCL库,也适用于普通的windows x86 C#项目(而不是仅仅在跨平台(Xamarin)项目中使用它们)。
这样做的原因基本上是对遗留项目进行移植:我希望在未来的项目中切换到PCL代码,并在旧代码中使用新特性。可以想象,这些项目至少部分是为C#运行时的旧版本(即4.0)开发的。
我的问题是:我是否可以期望库的行为类似,这意味着如果我的基本单元测试通过,我是好的?还是有一些随机行为使得验证库的适当功能变得困难?我特别担心我读到的关于HttpClient代码的文章/问题,这些文章和问题出乎意料,但在不同的运行时版本(4.0-4.5)之间甚至没有一贯的错误。因此,团队将追逐无法复制的问题,并破坏支持团队周末:-P。
我不太确定这个问题是否容易理解,请告诉我这是否有意义。如果太让人困惑的话,我可以在人们提出建议之后再用它来表达.。
发布于 2016-05-09 10:35:34
在PCL的项目属性中,您可以检查.Net的哪个版本和要支持的平台。在后台,您选择geht的映射到一个可移植的子集配置文件,其中只有那些API是可用的,在所有选定的平台上都支持这些API。
(不过,PCLs并不是Xamarin特有的东西。)
在某些情况下,平台实现细节会泄露出去,例如使用计时器(它们甚至不包括在某些可移植子集中)。
您的单元测试可能会通过,一旦您注意到一些特定的问题,您仍然可以在那里添加额外的测试。
对于HttpClient,出于性能考虑,我建议注入一些特定于平台的客户端(比如现代)。
https://stackoverflow.com/questions/37113323
复制相似问题