TryParse를 제네릭 형식으로 복제하려고 시도하고 TypeDescriptor가 내가 무엇을 제공하는지 생각해보십시오. 그래서 나는 다음과 같은 테스트 케이스를 생각해 냈다.하지만 실패하고있다. 어디서 잘못 될지 아무도 모른다면 궁금하다.TryParse 대신 TypeDescriptor를 사용합니다.
[TestMethod]
public void Test()
{
string value = "Test";
Guid resultValue;
var result = this.TryConvert(value, out resultValue);
}
public bool TryConvert<T>(string value, out T resultValue)
{
var converter = System.ComponentModel.TypeDescriptor.GetConverter(typeof(T));
if (converter.IsValid(value))
{
resultValue = (T)converter.ConvertFrom(value);
return true;
}
resultValue = default(T);
return false;
}
참고로 try catch 블록을 사용하고 싶지 않습니다. TypeConverter.IsValid
위한 MSDN 문서에서
어디에서 문제가 있습니까? 변환기가 null입니까? IsValid 호출이 false를 반환합니까? –
IsValid는 항상 true를 반환합니다. 따라서이 줄은 "resultValue = (T) converter.ConvertFrom (value);"실패합니다. –