0
votes

Relatif des chaînes aux propriétés en C #

dire que j'ai une classe: xxx

et j'ai une sorte de convention de style de paramètre URL, où je souhaite permettre la spécification des valeurs de cette classe dans le format de chaîne suivant: < / p> xxx

Je voudrais peut-être écrire une classe qui fait quelque chose comme ceci: xxx

Il semble juste très inélégant d'avoir à Spécifiez une propriété de deux manières différentes, et nous nous retrouvons avec beaucoup de code répété dans ces deux entrées de dictionnaire. La réflexion pourrait être utilisée pour rendre cela moins désordonné éventuellement? Mais encore une fois, on se sent comme ça ne devrait pas avoir à être pour moi. Quelque chose comme ceci: xxx

serait tant de nombre de NATCHEAUX. Y a-t-il quelque chose que je puisse faire avec des attributs (rester loin de la réflexion) qui pourrait aider dans ce cas?

En outre, je viens à ce sujet complètement faux? Existe-t-il une façon de le transformer sur sa tête qui rend la manipulation de la connexion entre une chaîne et une propriété vraiment succincte et soignée? Je semble rencontrer la nécessité de relier les chaînes à des propriétés comme celle-ci raisonnablement souvent, (ou passez autour d'un pointeur sur la propriété elle-même) et tout conseil serait très apprécié.


4 commentaires

Nous devrions probablement connaître le cas d'utilisation pour voir si vous arrivez complètement mal mais à la valeur de visage, il est assez difficile de voir un avantage de la configuration de plusieurs accessoires de cordes.


@Chieftwopencil - Juste pour clarifier, voulez-vous dire en complicant ou en dehors des limites de l'exemple? (Je suppose que ce que je veux dire, c'est qu'il y a une façon stupidement facile de faire cela qui me manque, à part la réflexion?)


Serializing / désérialisant à l'aide de XML ou JSON ne correspondrait pas à vos besoins? De nombreux outils ont été essentiellement testés et sont prêts à être utilisés.


@Johndarvill, basé sur votre plus récente question, vous semblez avoir affaire à un problème de sérialisation commun. S'il vous plaît voir ma réponse ci-dessous.


3 Réponses :


0
votes

pour juste le type TYPE , un motif est destiné aux méthodes de stringify pour être membres de la classe d'origine: xxx

choisissant de remplacer le TOSTRING () La méthode peut être particulièrement agréable, mais vous pourriez également utiliser des classes jumelées statiques ou ou usine si vous devez gérer plusieurs formats différents, où le Les noms de méthode ou de type peuvent indiquer le contexte.

Cependant, l'utilisation d'un dictionnaire semble être une tentative de fonctionnement de tout type de type aléatoire (ou plusieurs types spécifiques) avec des propriétés inconnues ou diverses. Dans cette situation, où vous souhaitez des implémentations plus reproductibles et génériques, vous voudrez peut-être lire davantage sur SERIALISATION . Le lien est juste pour les trucs intégrés, y compris dans .NET. Vous pouvez également utiliser un certain nombre de bibliothèques supplémentaires pour gérer ce genre de chose.


1 commentaires

Je voudrais passer la série de sérialisation. Un seul caractère ~ dans l'une des valeurs de propriété enfreindrait le code.



0
votes

En ce qui concerne le but du code, comme d'autres ont déclaré, je préférerais utiliser la sérialisation JSON standard à l'aide de Newtonsoft JSON par exemple.

En ce qui concerne la propriété de votre question, il n'est pas possible de définir simplement un pointeur à une propriété Pour éviter la duplication de code.

Une chose cependant: vous pouvez utiliser NameOf () sur une propriété comme xxx

dans une autre question Stackoverflow, j'ai proposé un moyen de Créez des pointeurs de propriétés, mais c'était plus une preuve de concept plutôt qu'une chose vraiment utilisable: PropertyPointer


0 commentaires

1
votes

Cette question est la tentative de l'OP de clarifier sa question initiale ici: est là un moyen de stocker un pointeur à une propriété en C #?

L'OP a dit à l'origine qu'il court dans la nécessité de le faire assez régulièrement, ce qui suggère qu'il peut aborder le problème de manière incorrecte. En regardant sa nouvelle question ci-dessus, il semble être un problème de sérialisation.

OP devrait aller lire tout ce qu'il peut sur la sérialisation, puis voir s'il peut rassembler une solution de tablette. Les autres intervenants ont suggéré l'utilisation de Newtonsoft Json, que je pense également peut-être une solution appropriée pour l'OP. Newtonsoft est connu pour être extrêmement rapide, ce qui permet de travailler sur presque toutes les situations. C'est aussi assez robuste.

La seule raison pour laquelle je suggérerais d'utiliser la sérialisation JSON est si l'OP a besoin de son propre format plus lisible par l'homme. Et même si c'est son besoin, il y a encore des moyens de réaliser cela. Encore une fois, OP devrait lire tout ce qu'il peut sur la sérialisation avant de continuer.


1 commentaires

Pour clarifier, la «sérialisation JSON» n'est qu'un type de sérialisation. La sérialisation est le processus de transformation d'un objet en données série (telles qu'une chaîne ou une matrice d'octet). La désérialisation est l'inverse de cela.