TypeConvertersを使用してSystem.Datetimeをカスタムタイプに変換する方法
-
07-07-2019 - |
質問
何らかの理由で、 DateTime
を多くのカスタムオブジェクトの1つにキャスト/変換する必要があります
これは、一般的な方法で行うのは非常に難しいことがわかります。
オブジェクトに拡張メソッドを実装するか、おそらく DateTimeConverter
を拡張することを考えています。
しかし、これを処理する一般的な方法は何ですか?オブジェクトと宛先タイプがあり、現在 System.ConvertTo(..)
を使用していますが、これは明らかに制限されています.NETタイプへの変換のみをサポートし、拡張することはできません。
アイデアはありますか
解決
DateTimeをパラメーターとして使用するTimeStampのコンストラクターを追加できます。
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
所属していません StackOverflow