Caché. Agregar vencimiento absoluto - basado en UTC o no?
Los ejemplos paraCaché.Agregar usosDateTime.Now.Add
para calcular la caducidad, es decir, pasa:
DateTime.Now.AddSeconds(60)
como el valor de laabsoluteExpiration
parámetro.
Habría pensado que computarlo en relación aDateTime.UtcNow
sería más correcto [ya que no hay ambigüedad si el horario de verano comienza en el tiempo intermedio entre ahora y el punto de vencimiento].
Antes de la introducción deDateTimeKind
, Habría adivinado que hay algunos trucos feos en la administración del caché para que haga algo apropiado si la hora no fuera la hora UTC.
En .NET 2.0 y versiones posteriores, supongo que debería manejar unDateTime
calculado comoDateTime.UtcNow.AddSeconds(60)
correctamente dado que tieneDateTime.Kind
Utilizar como aporte en sus inferencias.
He estado usando con confianzaDateTime.UtcNow
como la base durante años, pero no fue capaz de encontrar una razón de que esto es definitivamente lo correcto en ausencia de algo que indique que la documentación ha sido altamente engañosa durante más de 4 años.
¿Las preguntas?
A pesar de mucho bingage y google, no pude encontrar ninguna discusión autorizada sobre esto por parte de MS. ¿Puede alguien encontrar algo al respecto?¿Hay alguna razón por la que el uso de UtcNow no sea más correcto y / o seguro?(Sí, podría leer detenidamente la fuente y / o la fuente del Reflector'd, pero estoy buscando un golpe completo golpe bajo golpe)