创build或获取特定的SPTimeZone实例
创buildMicrosoft.SharePoint.SPTimeZone
的特定实例的最便捷方法如下:
SPTimeZone utc = SPRegionalSettings.GlobalTimeZones .OfType<SPTimeZone>() .FirstOrDefault(tz => tz.Information.Bias == 0 && tz.Information.DaylightBias == 0);
这是黑客最好的一个我可以得到…
这对我来说尤其是一个问题,因为我想嘲笑这部分代码进行unit testing,强制它始终返回UTC。 属性GlobalTimeZones
似乎依赖于HttpContext.Current
或实际的请求 – 我没有在我的unit testing的先决条件…
注:我知道有System.TimeZoneInfo
但第三方大会迫使我使用SPTimeZone …
为了停止讨论,我决定最终自己回答这个问题。
我想在这个简短的回答中收集一些真正有用的解决scheme:
- 介绍一个门面/适配器
- MS假货或其他框架
- 假访问SPTimeZone
- 创build一个假的HttpContext
- 去在上面的问题中描述的黑客…
我本人决定和MSFFS一起去完成整个第三方调用(因为我不想testing它的行为),并且在我的方法中使用SPTimeZone的所有属性。 不幸的是,引入一个适配器不是我的select,因为我必须保留(内部)API。