Frage

Gibt es trotzdem, um zu bestimmen, ob ein Resourcemanager eine benannte Ressource enthält? Derzeit bin ich fange die Missing aber ich hasse es, Ausnahmen für nicht-Ausnahmesituationen zu verwenden. Es muss einen Weg geben, den Namen Wertepaare eines Resourcemanager durch Reflexion aufzuzählen, oder was?

Bearbeiten : Ein wenig mehr Details. Die Ressourcen sind nicht Montage in der Ausführung, aber die Resourcemanager arbeitet gut. Wenn ich _resourceMan.GetResourceSet(_defaultCuture, false, true) versuchen bekomme ich null, während, wenn ich _resourceMan.GetString("StringExists") versuche ich einen String zurück.

War es hilfreich?

Lösung

Sie können die ResourceSet verwenden zu tun, nur er alle Daten in den Speicher geladen, wenn Sie es aufzuzählen. Hier y'go:

    // At startup.
    ResourceManager mgr = Resources.ResourceManager;
    List<string> keys = new List<string>();

    ResourceSet set = mgr.GetResourceSet(CultureInfo.CurrentCulture, true, true);
    foreach (DictionaryEntry o in set)
    {
        keys.Add((string)o.Key);
    }
    mgr.ReleaseAllResources();

    Console.WriteLine(Resources.A);

Andere Tipps

ich glaube, Sie so etwas wie Assembly.GetManifestResourceNames die Liste der zur Verfügung stehenden Ressourcen in das Manifest der Assembly aufzuzählen. Es ist nicht schön und nicht alle der Ecke Fälle lösen, funktioniert aber, wenn erforderlich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top