Mon idée est d'éviter les clés de chaîne magiques dans mon application ASP.NET MVC. Pour ce faire, je souhaite créer des clés constantes de chaîne à partager dans l'application.
Par exemple, je peux écrire et p> Mes questions sont: Quelle est la meilleure façon d'éviter les clés de chaîne magiques? Utilisation des touches de chaîne constante dans une classe ou en utilisant une énumération avec templata [myClass.message] code> ou templdata [myenum.message. Tostring ()] code> au lieu de tempdata ["message"] code>. P> tostring () code>? P> p>
3 Réponses :
Vous devriez aller pour les cordes constantes comme cela peut également être des espaces de contention / des caractères spéciaux, si ce sont vos exigences. Sinon, changez templdata vers Dictionnaire
Il appartient à la préférence et à l'utilisation.
Vous pouvez accepter les valeurs énumérées sous une manière fortement dactylographiée: p> ou p> TempData[MyEnum.Message]
Je sais que cela a été répondu, mais je veux joindre mes pensées ici. Vous vous concentrez de trop près sur la mécanique et non le problème que vous rencontrez: «Comment puis-je vous échapper de casser mon application lorsque je déciderai de choisir Tempdata [" Message "] devrait être une session [" alerte "]" ( ou quelque chose comme ça. P>
Les chaînes magiques ne s'appliquent pas aux clés du dictionnaire - elles s'appliquent aux messages envoyés à la routine qui fait quelque chose en fonction de la valeur de la chaîne. Quelque chose comme "SteStatus (" actuel ")" serait magique. P>
Ce que vous voulez faire ici est d'utiliser une méthode centralisée pour manipuler la messagerie. Créez-vous une classe d'assistance et appelez-la «Messagerie» si vous aimez - IR Obtenez toutes les rails et appelez-le «Flash». Ensuite, vous pouvez faire quelque chose de groovy comme "flash.message (" salut là-bas ")" - cela empêche le mécanisme caché (comme il devrait être) et que vous ne vous inquiétez pas pour ces clés de dictionnaire stupide. P>
Vous pouvez également développer ceci - "flash.alert (" oh non! ') "- etc. p>
Bon post. Quant à moi, j'aime stocker des données comme "SetStatus (" actuel ")" dans dB et (ou) dans le cache. Parce que si je veux changer cela, je n'ai pas besoin de reconstruire mon application.