Déterminer si une ressource existe dans ResourceManager

Est-il possible de déterminer si un ResourceManager contient une ressource nommée? J’attrape actuellement l’exception MissingManifestResourceException mais je déteste devoir utiliser des exceptions pour des situations non exceptionnelles. Il doit y avoir un moyen d’énumérer les paires nom-valeur d’un ResourceManager par reflection ou autre chose?

EDIT : Un peu plus en détail. Les ressources ne sont pas en train d’exécuter l’assembly, cependant le ResourceManager fonctionne correctement. Si j’essaie _resourceMan.GetResourceSet(_defaultCuture, false, true) j’ai la valeur null, alors que si j’essaie _resourceMan.GetSsortingng("SsortingngExists") je récupère une chaîne.

Vous pouvez utiliser le ResourceSet pour cela, seulement il charge toutes les données en mémoire si vous les énumérez. Voici y’go:

  // At startup. ResourceManager mgr = Resources.ResourceManager; List keys = new List(); ResourceSet set = mgr.GetResourceSet(CultureInfo.CurrentCulture, true, true); foreach (DictionaryEntry o in set) { keys.Add((ssortingng)o.Key); } mgr.ReleaseAllResources(); Console.WriteLine(Resources.A); 

Je pense que vous pouvez utiliser quelque chose comme Assembly.GetManifestResourceNames pour énumérer la liste des ressources disponibles dans le manifeste de Assembly. Ce n’est pas joli et ne résout pas tous les cas, mais fonctionne si nécessaire.