Question

Pour une raison quelconque, je dois convertir / convertir un DateTime en un des nombreux objets personnalisés

Cela s’avère très difficile à faire de façon générique.

Je songe à implémenter une méthode d'extension sur un objet ou peut-être à étendre DateTimeConverter .

Mais alors quelle serait la manière générique de gérer cela, j’ai un objet et un type de destination et pour le moment j’utilise System.ConvertTo (..) mais ceci est clairement limité car il ne prend en charge que la conversion en types .NET et ne peut pas être étendu.

Des idées?

Était-ce utile?

La solution

Vous pouvez ajouter un constructeur pour votre TimeStamp qui prend DateTime en tant que paramètre.

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

Puis plus tard ...

 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;
 }

Vous pourriez probablement même étendre cela à toutes sortes de réflexions et de constructeurs, etc. Mais si vous voulez baser un objet sur un autre (comme un horodatage sur une date), un constructeur semble naturel.

J'espère que cela vous aidera, TJB

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top