Cache.Add абсолютный срок действия - на основе UTC или нет?
Примеры дляCache.Add использованияDateTime.Now.Add
чтобы вычислить срок действия, то есть он передает:
DateTime.Now.AddSeconds(60)
в качестве значенияabsoluteExpiration
параметр.
Я бы подумал, что вычисление его относительноDateTime.UtcNow
было бы более правильно [так как нет никакой двусмысленности, если летнее время начинается в промежуточное время между настоящим моментом и точкой истечения срока].
До введенияDateTimeKind
Я бы догадался, что в управлении кешем есть какие-то уродливые хаки, чтобы заставить его делать что-то уместное, если бы время не было временем UTC.
В .NET 2.0 и выше, я предполагаю, что он должен обрабатыватьDateTime
рассчитывается какDateTime.UtcNow.AddSeconds(60)
правильно, учитывая, что он имеетDateTime.Kind
использовать в качестве входных данных в своих выводах.
Я уверенно использовалDateTime.UtcNow
в качестве базы в течение многих лет, но не смог придумать обоснование того, что это определенно правильная вещь, если ничего не указывать на то, что документация вводит в заблуждение более 4 лет.
Вопросы?
Несмотря на то, что я много гулял и гуглил, мне не удалось найти какого-либо авторитетного обсуждения этого вопроса от MS - может кто-нибудь найти что-нибудь по этому поводу?Есть ли причина, по которой использование UtcNow не будет более правильным и / или безопасным?(Да, я мог бы просмотреть источник и / или источник Reflector, но ищу полное снижение за ударом!)