TypeConverters를 사용하여 System.dateTime으로 사용자 지정 유형으로 변환하는 방법
-
07-07-2019 - |
문제
어떤 이유로 나는 캐스트/변환이 필요하다 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
제휴하지 않습니다 StackOverflow