voici la ligne qui pose problème:
Code : Tout sélectionner
myFieldInfo.SetValue(lescript, Convert.ChangeType(découpage[repèr + 3], myFieldInfo.GetType()));
Code : Tout sélectionner
Type le_type_sible = myFieldInfo.GetType();
string la_string = découpage[repèr + 3];
var potato = Convert.ChangeType(la_string, le_type_sible);
myFieldInfo.SetValue(lescript, potato);
ça échoue à convertir une string contenant "7" en un int de valeur "7"InvalidCastException: Value is not a convertible object: System.String to System.Reflection.MonoField
pour résoudre ce problème j'ai essayé:
- de remplacer .GetType() par .PropertyType
- de remplacer Convert.ChangeType par Convert.ToType
- de remplacer var potato = Convert.ChangeType(la_string, le_type_sible); par var potato = string la_string; potato.SetType(le_type_sible);
- et probablement d'autres tentatives dont je n'ai pas gardé de trace,
et rien ne marches.
Est-ce que quelqu'un aurait une idée de comment résoudre le problème?
je sais que je peux faire ça de manière un peu brute force avec des if, mais je garde ça en dernier recours.
Merci d'avance pour vos réponses.