Как только вы добавите файл ресурса .RESX в свой проект, Visual Studio создаст файл Designer.cs с тем же именем, создав для вас класс со всеми элементами ресурса в качестве статических свойств. Вы можете увидеть все имена ресурсов, когда набираете точку в редакторе после того, как вы набираете имя файла ресурса.
В качестве альтернативы, вы можете использовать отражение, чтобы перебрать эти имена.
Type resourceType = Type.GetType("AssemblyName.Resource1");
PropertyInfo[] resourceProps = resourceType.GetProperties(
BindingFlags.NonPublic |
BindingFlags.Static |
BindingFlags.GetProperty);
foreach (PropertyInfo info in resourceProps)
{
string name = info.Name;
object value = info.GetValue(null, null); // object can be an image, a string whatever
// do something with name and value
}
Этот метод, очевидно, применим только в том случае, если файл RESX находится в области действия текущей сборки или проекта. В противном случае используйте метод, предоставленный «пульс».
Преимущество этого метода заключается в том, что вы вызываете фактические свойства, которые были предоставлены для вас, принимая во внимание любую локализацию, если хотите. Тем не менее, это довольно избыточно, так как обычно вы должны использовать безопасный тип прямой метод вызова свойств ваших ресурсов.