2009-01-09 55 views
0

出於某種原因,我需要轉換/轉換DateTime爲許多自定義對象之一如何利用類型轉換器到一個System.DateTime轉換爲自定義類型

這被證明是非常困難的一個很好的通用的方式做。

我正在考慮在對象上實現擴展方法,或者擴展方法爲DateTimeConverter

但是那麼通用的方式來處理這個,我有一個對象和一個目的地類型,目前我使用System.ConvertTo(..),但是這顯然是有限的,因爲它只支持轉換爲.NET類型並且不能被擴展。

任何想法?

回答

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

+0

TJB這正是我所定下的,它的工作很好。 謝謝 – 2011-01-21 23:34:56