出于某种原因,我需要将DateTime
转换/转换为许多自定义对象之一
事实证明这很难以通用的方式进行。
我正在考虑在对象上实现扩展方法,或者可能扩展DateTimeConverter
。
但是那么处理这个的通用方法是什么,我有一个对象和一个目标类型,目前我正在使用System.ConvertTo(..)
,但这显然是有限的,因为它只支持转换为.NET类型和不能延长。
有什么想法吗?
答案 0 :(得分:0)
您可以为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