TypeDescriptor 클래스에 ussue가 있습니다.TypeDescriptor가 날짜를 인식하지 않습니다.
날짜가 포함 된 쿠키가 있습니다. 날짜가 문자열로 변환 된 다음 다시 도우미 메서드를 사용하여 다시 변환됩니다.
내 스테이플 확장 메서드 중 하나가 변환을 수행하는 데 사용되지만 날짜가 문자열에서 다시 변환 할 수 없기 때문에 강제 오류가 발생합니다.
여기에 메시지 I 출력입니다 :
22/01/2015 14시 29분 15초이 나에게 날짜 시간처럼 보이는 날짜 시간
로 변환 할 수 없습니다!
Convert.ToDateTime()
을 사용하면 문제를 극복 할 수 있으므로 일반적으로 코드는 괜찮습니다. 나는 날짜까지 아무 문제없이 elwhere 날짜에도 사용합니다.
Set = new SortedSet<TrackedItem>(set
.Split(';')
.Select(s =>
{
var parts = s.Split(',');
return new TrackedItem(
parts[0].ConvertTo<int>(),
Convert.ToDateTime(parts[1]));
}));
어떤 아이디어 :
유일한 차이점
내가이 같은 LINQ 문의 중간에 변환있어 것입니다?public static T ConvertTo<T>(this object obj, bool throwInvalid = false)
where T : IConvertible
{
// Object does not require converting.
if (obj is T) return (T)obj;
// Determine if object can be converted.
var type = typeof(T);
var converter = TypeDescriptor.GetConverter(type);
var isConvertible = converter != null && converter.IsValid(obj);
var error = string.Format("'{0}' could not be converted to type {1}", obj, type.Name);
// If no conversion is available, and defaults not allowed throw an error.
(!isConvertible && throwInvalid).ThrowTrue(error);
// If the object is convertible, convert it, else return the default(T).
return isConvertible ? (T)converter.ConvertFrom(obj) : default(T);
}
Aakash의 스팟 - 제거가 유효하지 않으며 모든 것이 작동합니다. 매우 유익한 답변을 주셔서 감사합니다. 매우 감사드립니다. – dotnetnoob