wie Typeconverter verwenden System.DateTime zu benutzerdefinierten Typ zu konvertieren
-
07-07-2019 - |
Frage
Aus irgendeinem Grund Ich brauche eine DateTime
in einer von vielen benutzerdefinierten Objekte
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?
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