Comment faire une boucle dans toutes les ressources du gestionnaire de ressource?Parcourez toutes les ressources dans ResourceManager - C#
Ie: foreach (ressource de chaîne dans ResourceManager) // Fait quelque chose avec la recource.
Merci
Comment faire une boucle dans toutes les ressources du gestionnaire de ressource?Parcourez toutes les ressources dans ResourceManager - C#
Ie: foreach (ressource de chaîne dans ResourceManager) // Fait quelque chose avec la recource.
Merci
Utilisez ResourceManager. GetResourceSet() pour une liste de toutes les ressources pour une culture donnée. Le ResourceSet retourné implémente IEnumerable (vous pouvez utiliser foreach).
Pour répondre à la question de Nico: vous pouvez compter les éléments d'un IEnumerable
en jetant à la IEnumerable<object>
générique et utiliser la méthode d'extension Enumerable.Count<T>()
, ce qui est nouveau en C# 3.5:
using System.Linq;
...
var resourceSet = resourceManager.GetResourceSet(..);
var count = resSet.Cast<object>().Count();
Je me demande Pourquoi voudriez-vous parcourir toutes les ressources?
Quoi qu'il en soit, ResourceManager
doit être instancié en lui donnant un Type
ou le nom de base où rechercher des ressources. Ensuite, vous serez en mesure de récupérer un ResourceSet
mais pour un donné CultureInfo
, ergo si vous voulez obtenir toutes les ressources pour un `ResourceManager
Nous avons une utilisation pour cela où nous permettons à un administrateur client de remplacer les littéraux de langue dans la base de données, nous avons donc besoin d'une page pour montrer toutes les ressources qu'ils peuvent remplacer. –
comment diable puis-je obtenir un compte pour cela? – bevacqua
@Nico: IEnumerable n'implémente pas une propriété Count mais vous pouvez itérer les entrées et les compter. Vous pouvez également convertir le RessourceSet en IEnumerable
Existe-t-il un moyen de parcourir toutes les cultures disponibles? J'essaie d'écrire un template T4 qui génère des fichiers json de localisation à partir de fichiers resx. – Santhos