【问题标题】:how to use TypeConverters to convert a System.Datetime to custom type如何使用 TypeConverters 将 System.Datetime 转换为自定义类型
【发布时间】:2009-01-09 21:55:58
【问题描述】:

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

这被证明是很难以一种很好的通用方式做到的。

我正在考虑在对象上实现扩展方法,或者可能扩展 DateTimeConverter

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

有什么想法吗?

【问题讨论】:

    标签: datetime typeconverter complex-data-types


    【解决方案1】:

    您可以为 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 这正是我所决定的并且它工作得很好。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 2019-05-17
    • 1970-01-01
    • 2022-01-22
    • 2017-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多