По какой-то причине мне нужно преобразовать DateTime в один из множества настраиваемых объектов.
Оказывается, это очень сложно сделать обычным способом.
Я думаю о реализации метода расширения на объекте или, возможно, о расширении DateTimeConverter.
Но тогда каков будет общий способ справиться с этим: у меня есть объект и тип назначения, и на данный момент я использую System.ConvertTo(..), но это явно ограничено, потому что он поддерживает только преобразование в типы .NET и не может быть расширен.
Любые идеи?





Вы можете добавить конструктор для TimeStamp, который принимает DateTime в качестве параметра.
public class TimeStamp
{
public TimeStamp(DateTime dateTime, ...)
{
// Your code here to convert from dateTime to TimeStamp
}
}
Тогда позже ...
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;
}
Возможно, вы даже можете расширить это с помощью всевозможных отражений, конструкторов и т. д. Но если вы хотите, чтобы один объект основывался на другом (например, отметка времени от даты и времени), конструктор кажется естественным.
Надеюсь, это поможет, TJB
TJB - это именно то, на чем я остановился, и он отлично работает. Спасибо