Pregunta

Por alguna razón, necesito convertir / convertir un DateTime en uno de los muchos objetos personalizados

Esto demuestra ser muy difícil de hacer de una manera genérica y agradable.

Estoy pensando en implementar un método de extensión en el objeto o tal vez extender DateTimeConverter .

Pero entonces, ¿cuál sería la forma genérica de manejar esto? Tengo un objeto y un tipo de destino y en este momento estoy usando System.ConvertTo (..) pero esto está claramente limitado porque solo admite la conversión a tipos .NET y no se puede extender.

¿Alguna idea?

¿Fue útil?

Solución

Puede agregar un constructor para su TimeStamp que tome DateTime como parámetro.

public class TimeStamp
{
   public TimeStamp(DateTime dateTime, ...)
   {
    // Your code here to convert from dateTime to TimeStamp
   }
}

Luego más tarde ...

 DestType Convert<DestType>( Object linqResult )   
 {
  DestType result;
  if( linqResult is DateTime && DestType is TimeStamp )
  {
   DateTime dbTime = linqResult as DateTime;
   result = new TimeStamp( dbTime );
  }
  ...
  return result;
 }

Probablemente incluso podría extender esto con todo tipo de reflexión y constructores, etc. Pero si desea basar un objeto en otro (como una marca de tiempo de una fecha y hora), un constructor parece natural.

Espero que esto ayude, TJB

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top