質問

何らかの理由で、 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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top