0

出于某种原因,我需要将 aDateTime转换/转换为许多自定义对象之一

事实证明,以一种很好的通用方式很难做到这一点。

我正在考虑在 object 上实现扩展方法或扩展DateTimeConverter.

但是,处理这个问题的通用方法是什么,我有一个对象和一个目标类型,目前我正在使用System.ConvertTo(..),但这显然是有限的,因为它只支持转换为 .NET 类型并且不能扩展。

有任何想法吗?

4

1 回答 1

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

于 2009-01-10T11:25:58.003 回答