gpt4 book ai didi

c# - 创建或获取特定的 SPTimeZone 实例

转载 作者:IT王子 更新时间:2023-10-29 03:40:51 24 4
gpt4 key购买 nike

创建 Microsoft.SharePoint.SPTimeZone 的特定实例的最便捷方法是什么,如下所示:

SPTimeZone utc = SPRegionalSettings.GlobalTimeZones
.OfType<SPTimeZone>()
.FirstOrDefault(tz => tz.Information.Bias == 0
&& tz.Information.DaylightBias == 0);

这是我能得到的最好的技巧吗...

这对我来说尤其是个问题,因为我想模拟这部分代码以进行单元测试并强制它始终返回 UTC。属性 GlobalTimeZones 似乎取决于 HttpContext.Current 或实际请求 - 我在单元测试中没有的先决条件...

注意:我知道有 System.TimeZoneInfo,但第三方程序集迫使我使用 SPTimeZone ...

最佳答案

为了停止讨论,我决定最终自己回答这个问题。

我想在这个简短的回答中收集评论中的几个非常有用的解决方案:

  • 介绍外观/适配器
  • MS Fakes 或其他框架
    • 伪造对 SPTimeZone 的访问
    • 创建一个假的 HttpContext
  • 使用上述问题中描述的 hack ...

我自己决定使用 MSFakes 来填充整个第 3 方调用(因为无论如何我都不想测试它的行为)并填充我在我的方法中使用的 SPTimeZone 的所有属性。不幸的是,引入适配器对我来说不是一个选择,因为我必须保留(内部)API。

关于c# - 创建或获取特定的 SPTimeZone 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30391153/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com