Frage

Aus irgendeinem Grund Ich brauche eine DateTime in einer von vielen benutzerdefinierten Objekte

werfen / convert

Dies erweist sich als sehr schwierig, in einer schönen generic Art und Weise zu tun.

Ich denke eine Erweiterungsmethode auf Objekt der Implementierung oder vielleicht DateTimeConverter erstrecken.

Aber dann, was die allgemeine Art und Weise zu handhaben wäre, ich habe ein Objekt und einen Zieltyp und im Moment verwende ich System.ConvertTo(..) aber dies ist eindeutig begrenzt, weil es unterstützt nur die Umwandlung Typen auf .NET und kann nicht verlängert werden.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Sie können einen Konstruktor für Ihre Timestamp hinzufügen, die Datetime als Parameter annimmt.

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

Dann später ...

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

Sie könnten wahrscheinlich sogar erweitern diese mit allen Arten von Reflexion und Konstrukteuren usw. Aber wenn Sie ein Objekt auf der Basis eines anderen aus (wie ein Zeitstempel von einem Datum Zeit) ein Konstruktor scheint natürlich.

Hope, das hilft, TJB

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top