出于某种原因,我需要将 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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top