11
votes

Comment supprimer une propriété de la classe au moment de l'exécution

est-il possible de supprimer une propriété de la classe au moment de l'exécution, comme: xxx

au moment de l'exécution, je veux supprimer num2 de obj . Est-ce possible?


3 commentaires

Ce que vous voulez supprimer s'appelle une propriété, pas un attribut.


Non, ce n'est pas possible, alors vous devriez peut-être poser des questions sur ce que vous essayez d'accomplir, au lieu de vous demander la méthode que vous pensiez pouvoir utiliser pour le résoudre.


Qu'est-ce que vous essayez exactement de faire ici? Êtes-vous sûr de vouloir supprimer la propriété Num2 entièrement (enfreindre tout autre code qui l'utilise?). Ou peut-être que vous ne voulez pas que cela apparaisse à IntelliSense ...?


6 Réponses :


10
votes

Cela ne peut pas être fait. Une fois compilé, une définition de classe est définie.


0 commentaires

1
votes

Comme les autres ont déjà dit, ce n'est pas possible.

à la place, vous pouvez ajouter une autre propriété par exemple par exemple xxx

alors à l'exécution Ajouter Num2 à Cette liste et vérifiez-la pour les propriétés que vous devez ignorer.


0 commentaires

0
votes

Vous devez trouver une approche modèle de modèle / vue. Créez une viewmodel qui aura des propriétés limitées pour votre besoin.


0 commentaires

0
votes

Je suis d'accord avec la réponse nic: cela ne peut pas être fait. Une fois compilé, une définition de classe est définie.

Mais vous pouvez créer une propriété de classe de manière dynamique ce que vous voulez par réflexion.


0 commentaires

0
votes

mon cas était beaucoup plus facile

J'ai une classe qui est de
Ensuite, j'ai besoin de supprimer quelques propriétés et de sauvegarder sur JSON
Je suis allé avec system.dynamic.expandoObject copie la classe xxx


0 commentaires

0
votes

Je n'ai pas pu supprimer la propriété, j'essayais de créer un JSON dynamique, avec 2 classes différentes fusionnées, mais sans certaines propriétés (non nécessaires à cette classe fusionnée), ce que j'ai fait était, j'ai ajouté une coutume Attribut et ajouté au champ / propriétés que je n'avais pas besoin et utilise la réflexion pour créer un JSON personnalisé à l'exécution après la fusion de 2 classes.


0 commentaires