Transtypage par reflection sur un object inconnu
Bonjour,
après un peu de recherche j'en viens à poser la question sur le forum
Je voudrais savoir si il est possible de transtyper un object dont on connait pas le type, je donne mon code que j'utilise et je m'explique ensuite
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
public static bool MonTruc(object obj, string sMsg)
{
bool bResult = true;
try
{
if (obj != null)
{
// Juste pour mémo
// Type t = obj.GetType();
// System.Reflection.PropertyInfo[] pi = t.GetProperties();
// Type tGen= t.GetGenericTypeDefinition();
if (obj.GetType() == typeof(Label))
((Label)obj).Text = sMsg;
else if (obj.GetType() == typeof(ToolStripStatusLabel))
((ToolStripStatusLabel)obj).Text = sMsg;
else if (obj.GetType() == typeof(TextBox))
((TextBox)obj).Text = sMsg;
}
}
catch (Exception ex)
{
bResult = false;
}
return bResult;
} |
Je voudrais modifier la valeur sMsg de la propriété Text de mon objet obj.
1°/ Comment vérifier que mon objet obj possède bien une propriété Text (sans doute par PropertyInfo, mais pas trouvé comment) ?
2°/ Au lieu de vérifier par des if le type d'objet, peut-on imaginer un truc générique du genre ?
Code:
1 2 3 4 5 6 7
|
// Au lieu de
if (obj.GetType() == typeof(TextBox))
((TextBox)obj).Text = sMsg;
// un truc du genre
// ((Type de mon object)obj).Text = sMsg; |
Merci à vous de m'éclairer sur ces deux points... :)