Cache.Dodaj absolutne wygaśnięcie - oparte na UTC lub nie?

Przykłady dlaCache.Add używaDateTime.Now.Add obliczyć datę wygaśnięcia, to znaczy przechodzi:

 DateTime.Now.AddSeconds(60)

jako wartośćabsoluteExpiration parametr.

Pomyślałbym, że obliczanie tego w stosunku doDateTime.UtcNow byłoby bardziej poprawne [ponieważ nie ma dwuznaczności, jeśli czas letni zaczyna się w odstępie czasu między teraz a punktem wygaśnięcia].

Przed wprowadzeniemDateTimeKind, Domyśliłbym się, że w zarządzaniu pamięcią podręczną jest trochę brzydkich hacków, aby zrobić coś odpowiedniego, jeśli czas nie był czasem UTC.

W .NET 2.0 i nowszych odgaduję, że powinien on obsługiwaćDateTime obliczony jakoDateTime.UtcNow.AddSeconds(60) poprawnie podany, że takDateTime.Kind użyć jako danych wejściowych w swoich wnioskach.

Z ufnością korzystałemDateTime.UtcNow jako baza na lata, ale nie był w stanie znaleźć uzasadnienia, że ​​jest to zdecydowanie właściwa rzecz w przypadku braku czegokolwiek, co wskazuje, że dokumentacja jest bardzo myląca przez ponad 4 lata.

Pytania?

Pomimo wielu bingage i googling nie byłem w stanie znaleźć żadnej autorytatywnej dyskusji na ten temat z MS - czy ktoś może znaleźć coś na ten temat?Czy jest jakiś powód, dla którego używanie UtcNow nie byłoby bardziej poprawne i / lub bezpieczne?

(Tak, mogłem przeczytać źródło i / lub źródło Reflectora, ale szukam pełnego down-by-blow!)

questionAnswers(3)

yourAnswerToTheQuestion