Вы получаете награду, но по правилам мне нужно подождать 2 часа, прежде чем я смогу нажать на кнопку награды.

я есть .dll с большим количеством ResourceDictionaries.

построить действие из всех этих ResourceDictionaries установлено в«Страница».

Внутри Dll я хочу найти все эти ResourceDictionaries и перебрать их.

Если я установлю действие сборки на «EmbeddedResource», я смогу использовать Reflection:

var embeddedResources = Assembly.GetExecutingAssembly().GetManifestResourceNames().ToList();

Но GetManifestResourceNames () делаетне работа для ресурсов с действием сборки "Страница".

Как мне найти или перебрать все ресурсы, которые имеют действие "page" сборки?

Решение не должно быть отражением. Любой другой способ очень приветствуется.

Спасибо!

Решение:

Дамы и господа! Я должен объявить, что человек недели и победитель этой награды - мистер Джон Ву. Джон Ву дал правильную подсказку, и с помощью поиска я нашел это решение:

Перечисление ресурсов сборки .NET во время выполнения

Слегка измененный рабочий код выглядит так:

public static string[] GetResourceNames()
    {
        var asm = Assembly.GetExecutingAssembly();
        string resName = asm.GetName().Name + ".g.resources";
        using (var stream = asm.GetManifestResourceStream(resName))
        using (var reader = new System.Resources.ResourceReader(stream))
        {
            return reader.Cast<DictionaryEntry>().Select(entry => (string)entry.Key).ToArray();
        }
    }

Если вы вызовете этот метод, вы получите все строки ресурсов с ".baml" в конце, и вы можете перебирать их.

Спасибо Джон Ву за правильный намек.

Ответы на вопрос(1)

Ваш ответ на вопрос