La définition de valeur dans un tableau via la réflexion
Est-il un moyen de définir une valeur unique dans une propriété de tableau via la réflexion en c#?
Ma propriété est définie comme ceci:
double[] Thresholds { get; set; }
De "normale" propriétés-je utiliser ce code pour configurer via la réflexion:
PropertyInfo pi = myObject.GetType().GetProperty(nameOfPropertyToSet);
pi.SetValue(myObject, Convert.ChangeType(valueToSet, pi.PropertyType), null);
Comment aurais-je modifier ce code pour définir la valeur dans un tableau de propriété à une position arbitraire?
Merci!
BTW: j'ai essayé d'utiliser le paramètre d'index, mais qui ne semble que de travailler pour indexés propriétés et non des propriétés qui sont des tableaux...
OriginalL'auteur Boris | 2012-03-20
Vous devez vous connecter pour publier un commentaire.
Lorsque vous faites:
qui est sémantiquement équivalent à:
ce qui signifie que vous ne voulez pas un
SetValue
à tous les; plutôt, vous souhaitez utiliserGetValue
pour obtenir le tableau, puis la mutation de l'ensemble. Si le type est connu pour êtredouble[]
, puis:sinon peut-être la non-générique
IList
approche (comme les tableaux de mettre en œuvreIList
):Si c'est un tableau multidimensionnel, vous aurez à utiliser
Array
en place deIList
.OriginalL'auteur Marc Gravell
Vous ne sont pas réellement la définition de la propriété, en changeant simplement la valeur de la propriété:
GetValue
besoin d'un 2ème paramètre ici.GetValue maintenant résolu
OriginalL'auteur Bas
Te code ici fonctionnent sur elle, de sa conception à remplir en 10 position du tableau, vous pouvez le faire pour n'importe quel tableau de taille.
La fonction PopulateInstance remplir une structure de données avec ce dont j'ai besoin.
OriginalL'auteur Alexandre Ricardo Di Primio