Учитывая, что есть зарегистрированный конвертер типов для типов, которые вы пытаетесь преобразовать между небольшим отражением, магия может добиться цели:
private Ttgt MyMethod<Tsrc,Ttgt>(Tsrc sourceObject)
where Tsrc:struct where Ttgt:struct
{
Type targetType = typeof(Ttgt);
TypeConverter tc = TypeDescriptor.GetConverter(targetType);
Ttgt returnObject = (Ttgt)tc.ConvertTo(sourceObject, targetType);
return returnObject;
}
Но из коробки это будет очень ограниченное использование, так как нет, например, конвертера между bool и int. Какую проблему вы пытаетесь решить?
Я также обнаружил еще один вопрос с каким-то сумасшедшим кодом преобразования.
Edit:
Ваш комментарий проясняет, что вы пытаетесь выполнить сопоставление объектов между объектами домена и какой-либо моделью представления / контракта. Вы смотрели на AutoMapper ?