TypeConverters를 사용하여 System.dateTime으로 사용자 지정 유형으로 변환하는 방법

StackOverflow https://stackoverflow.com/questions/429897

문제

어떤 이유로 나는 캐스트/변환이 필요하다 DateTime 많은 사용자 정의 객체 중 하나로

이것은 멋진 일반적인 방식으로하기가 매우 어려운 것으로 판명됩니다.

객체에서 확장 방법을 구현하거나 확장 할 생각입니다. DateTimeConverter.

그러나 이것을 처리하는 일반적인 방법은 무엇입니까, 나는 객체와 대상 유형이 있고 현재 사용중인 순간 System.ConvertTo(..) 그러나 이것은 .NET 유형으로 변환하는 것을 지원하고 확장 할 수 없기 때문에 이것은 분명히 제한됩니다.

어떤 아이디어?

도움이 되었습니까?

해결책

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