Bonjour.
Dans mon application, je fais appel à 4 webservices différents mais qui contiennent tous un même groupe de propriétés (les propriétés génériques). Celles-ci n'existent hélas pas dans une classe parente.
- JKL.wsAnalogIn.AnalInIOConfigs_DataGridView.rowRecord_AnalIn
- JKL.wsAnalogOut.AnalOutIOConfigs_DataGridView.rowRecord_AnalOut
- JKL.wsDigitalIn.DigitInIOConfigs_DataGridView.rowRecord_DigitIn
- JKL.wsDigitalOut.DigitOutIOConfigs_DataGridView.rowRecord_DigitOut
J'ai une fonction de test commune:
1 2 3 4 5 6 7 8 9 10
| // Load the row cells values of a record into the appropriated cells of the DataGridView.
private void loadRecordCells_CellsRowDGV(DataGridViewCellEventArgs argums, string nameColumnEtiquette, ???)
{
if (!string.IsNullOrEmpty(rec_AnalIn.Name))
this.Rows[argums.RowIndex].Cells[nameColumnEtiquette].Value = ???.Name;
this.Rows[argums.RowIndex].Cells["Enabled"].Value = ???.Enable;
this.Rows[argums.RowIndex].Cells["DataBase ID"].Value = ???.dbID.ToString();
} |
Dans cette fonction, ??? est par exemple la propriété 'rec_AnalIn' (4) et devrait être passée sous forme d'un paramètre supplémentaire, mais comme les 3 dernières des 4 composantes de
JKL.wsAnalogIn.AnalInIOConfigs_DataGridView.rowRecord_AnalIn
sont spécifiques sur 3 niveaux hiérarchiques, je me demande quel est le type de l'argument que je pourrais spécifier. Si j'emploie 'Object', il me faudra 'caster' et donc reconnaître à l'intérieur de la fonction générique lequel des 4 types est d'application, au cas par cas, ce qui nest pas possible.
Comment faire ?
L'un des quatre appels de cette fonction serait donc :
1 2
| // Generic
loadRecordCells_CellsRowDGV(args, "Analog In", ???); |
Quelqu'un peut-il me conseiller ?
Merci d'avance.
Partager