Cześć,
w bazie danych trzymany jest sobie xml z klucz (nazwa property), value.
W aplikacji ten xml jest pobierany i miałyby zostać te property uzupełnione.
Wyciągam sobie w foreachu po nazwie:
var prop = this.GetType().GetProperty(item.Id);
var type = prop.PropertyType;
Tylko mam problem jak próbuję przekonwertować stringa do odpowiedniego typu.
Mam taka metode generyczną:
public static T ConvertGeneric<T>(string input)
{
try
{
var converter = TypeDescriptor.GetConverter(typeof(T));
if (converter != null)
return (T)converter.ConvertFromString(input);
return default;
}
catch (NotSupportedException)
{
return default;
}
}
ale nie potrafię jej wywołać.
Przy takiej próbie:
var type = prop.PropertyType;
var converted = ParseHelper.ConvertGeneric<type>(item.Value);
dostaję informację, że type jest zmianną a używam jej jak Type.
Znalazłem gdzieś taka opcję:
var type = prop.PropertyType;
MethodInfo method = typeof(ParseHelper).GetMethod(nameof(ParseHelper.ConvertGeneric));
MethodInfo generic = method.MakeGenericMethod(type);
var res = generic.Invoke(this, null);
tylko w tym wypadku res
jest typu object, a ja chcę żeby on był typu type
.
Co mi umyka? Prośba o wsparcie.