J'utilise un objet anonyme pour transmettre mes attributs Html à certaines méthodes d'assistance. Si le consommateur n'a pas ajouté d'attribut ID, je souhaite l'ajouter dans ma méthode d'assistance.
Comment puis-je ajouter un attribut à cet objet anonyme?
c#
reflection
anonymous-objects
Boris Callens
la source
la source
La classe d'extension suivante vous fournira ce dont vous avez besoin.
la source
Je suppose que vous voulez dire ici les types anonymes, par exemple,
new { Name1=value1, Name2=value2}
etc. Ils sont simplement générés automatiquement.Ce que tu pourrais faire, c'est écrire
new { old.Name1, old.Name2, ID=myId }
mais je ne sais pas si c'est vraiment ce que tu veux. Des détails supplémentaires sur la situation (y compris des exemples de code) seraient idéaux.Vous pouvez également créer un objet conteneur qui a toujours un ID et tout autre objet contenant le reste des propriétés.
la source
Cela accepterait la valeur d'identifiant que la zone de texte devrait avoir et à laquelle l'étiquette devrait faire référence. Si le consommateur n'inclut plus la propriété "id" dans textBoxHtmlAttributes, la méthode créera une étiquette incorrecte.
Je peux vérifier par réflexion si cet attribut est ajouté dans l'objet labelHtmlAttributes. Si tel est le cas, je souhaite l'ajouter ou créer un nouvel objet anonyme auquel il a été ajouté. Mais comme je ne peux pas créer un nouveau type anonyme en parcourant les anciens attributs et en ajoutant mon propre attribut "id", je suis un peu coincé.
Un conteneur avec une propriété ID fortement typée, puis une propriété "attributs" typée anonyme nécessiterait des réécritures de code qui ne correspondent pas à l'exigence "ajouter un champ id".
J'espère que cette réponse est compréhensible. C'est la fin de la journée, je ne peux plus mettre mon cerveau en ligne.
la source