Как я могу найти всех членов Properties.Resources в C # - PullRequest
3 голосов
/ 21 августа 2009

У меня есть некоторые ресурсы в сборке C #, к которым я обращаюсь

byte[] foob = Properties.Resources.foo;
byte[] barb = Properties.Resources.bar;
...

Я бы хотел пройтись по этим ресурсам без необходимости хранить индекс того, что я добавил. Есть ли метод, который возвращает все ресурсы?

Ответы [ 2 ]

5 голосов
/ 21 августа 2009

РЕДАКТИРОВАТЬ: оказывается, это свойства, а не поля, поэтому:

foreach (PropertyInfo property in typeof(Properties.Resources).GetProperties
    (BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic))
{
    Console.WriteLine("{0}: {1}", property.Name, property.GetValue(null, null));
}

Обратите внимание, что это также даст вам свойства "ResourceManager" и "Culture".

2 голосов
/ 21 августа 2009

Попробуйте Assembly.GetManifestResourceNames(). Назовите это так:

Assembly.GetExecutingAssembly().GetManifestResourceNames()

Редактировать: Чтобы получить ресурс, позвоните Assembly.GetManifestResouceStream() или для просмотра более подробной информации используйте Assembly.GetManifestResourceInfo().

...