Подтвердить что ты не робот

Функция общего преобразования не работает с гидами

У меня есть следующий код:

public static T ParameterFetchValue<T>(string parameterKey)
{
    Parameter result = null;

    result = ParameterRepository.FetchParameter(parameterKey);

    return (T)Convert.ChangeType(result.CurrentValue, typeof(T), CultureInfo.InvariantCulture);  
}

Тип result.CurrentValue - строка. Я хотел бы иметь возможность конвертировать его в Guid, но я продолжаю получать ошибку:

Недопустимый листинг из System.String в System.Guid

Это отлично работает с примитивными типами данных.
Есть ли способ сделать эту работу для не-примитивных типов данных?

4b9b3361

Ответ 1

Как насчет:

T t = (T)TypeDescriptor.GetConverter(typeof(T)).ConvertFromInvariantString(text);

Прекрасно работает для Guid и большинства других типов.