Maison >développement back-end >C++ >Comment puis-je récupérer dynamiquement les noms d'affichage à partir de fichiers de ressources dans .NET ?

Comment puis-je récupérer dynamiquement les noms d'affichage à partir de fichiers de ressources dans .NET ?

DDD
DDDoriginal
2025-01-01 14:28:10262parcourir

How Can I Dynamically Retrieve Display Names from Resource Files in .NET?

Récupération des noms d'affichage à partir des ressources

Dans les applications localisées, les développeurs rencontrent souvent le besoin d'afficher des étiquettes conviviales pour les propriétés du modèle. Bien que l'attribut DisplayName permette de spécifier des noms d'affichage statiques, il peut y avoir des scénarios dans lesquels ces noms doivent être récupérés dynamiquement à partir de sources externes, telles que des fichiers de ressources.

Malheureusement, l'utilisation de l'attribut DisplayName seul ne fournit pas la possibilité de spécifier une valeur dynamique à partir d’une ressource. L'erreur du compilateur rencontrée : "Un argument d'attribut doit être une expression constante, une expression de type ou une expression de création de tableau d'un type de paramètre d'attribut", indique que l'argument fourni doit être une valeur statique.

Solution de contournement avec .NET 4 et MVC 3

Pour les applications utilisant MVC 3 et .NET 4, une solution existe grâce à l'utilisation de l'attribut Display mis à jour trouvé dans le Espace de noms System.ComponentModel.DataAnnotations. Cet attribut étend les fonctionnalités de son prédécesseur, notamment la possibilité d'exploiter la localisation.

Pour utiliser cet attribut, modifiez votre modèle comme suit :

public class MyModel
{
    [Required]
    [Display(Name = "labelForName", ResourceType = typeof(Resources.Resources))]
    public string name { get; set; }
}

Remarque : Cette solution de contournement nécessite que le fichier de ressources soit marqué comme « ressource intégrée » et utilise l'outil personnalisé « ResXFileCodeGenerator ». De plus, App_GlobalResources ou App_LocalResources ne doivent pas être utilisés avec MVC.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn