Anzeigenamen aus Ressourcen abrufen
In lokalisierten Anwendungen müssen Entwickler häufig benutzerfreundliche Beschriftungen für Modelleigenschaften anzeigen. Während das DisplayName-Attribut die Angabe statischer Anzeigenamen ermöglicht, kann es Szenarios geben, in denen diese Namen dynamisch aus externen Quellen wie Ressourcendateien abgerufen werden müssen.
Leider ist die alleinige Verwendung des DisplayName-Attributs nicht möglich die Möglichkeit, einen dynamischen Wert aus einer Ressource anzugeben. Der Compiler-Fehler „Ein Attributargument muss ein konstanter Ausdruck, ein Ausdruckstyp oder ein Array-Erstellungsausdruck eines Attributparametertyps sein“ weist darauf hin, dass das bereitgestellte Argument ein statischer Wert sein muss.
Problemumgehung mit .NET 4 und MVC 3
Für Anwendungen, die MVC 3 und .NET 4 verwenden, gibt es eine Lösung durch die Verwendung des aktualisierten Anzeigeattributs im System.ComponentModel.DataAnnotations-Namespace. Dieses Attribut erweitert die Funktionalität seines Vorgängers, einschließlich der Möglichkeit, die Lokalisierung zu nutzen.
Um dieses Attribut zu nutzen, ändern Sie Ihr Modell wie folgt:
public class MyModel { [Required] [Display(Name = "labelForName", ResourceType = typeof(Resources.Resources))] public string name { get; set; } }
Hinweis: Diese Problemumgehung erfordert, dass die Ressourcendatei als „eingebettete Ressource“ markiert ist und das benutzerdefinierte Tool „ResXFileCodeGenerator“ verwendet. Darüber hinaus sollten App_GlobalResources oder App_LocalResources nicht mit MVC verwendet werden.
Das obige ist der detaillierte Inhalt vonWie kann ich Anzeigenamen dynamisch aus Ressourcendateien in .NET abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!