Vous avez écris un programme qui utilise la réflexivité sur un objet si cet objet vient à être modifié que vous ajoutez ou supprimez un champ votre code fonctionnera toujours.
Exemple de réflexivité en C#
On a deux objets qui possèdent des champs identiques. Il s'agit, sans nommer chacun des champs des deux structures, de copier les valeurs des champs communs (qui ont le même nom) de l'une des structure dans l'autre.Ainsi, si l'on vient à retirer ou a ajouter des champs, ce code restera toujours utilisables.
Le code suivant copie les valeurs des champs communs de detail dans current :
using System.ComponentModel;
private void FillCurrent(ClassStruct1 current, ClassStruct2 detail)
{
PropertyDescriptorCollection sources = TypeDescriptor.GetProperties(detail);
foreach (PropertyDescriptor src in sources)
{
PropertyDescriptor dest = TypeDescriptor.GetProperties(current).Find(src.Name, true);
dest.SetValue(current, src.GetValue(detail));
}
}
Tout simple non ?
Aucun commentaire:
Enregistrer un commentaire
Pour plus d'interactivité, n'hésitez pas à laisser votre commentaire.