Occasionally I need to get at the names of the resources in an assembly, usually this coincides with me trying to use a resource which either doesn’t exist of I otherwise make a typo on its name.
This little snippet simply allows us to iterate of the resources in an assembly and returns an array of the key names
public static string[] GetResourceNames(Assembly assembly) { string resName = assembly.GetName().Name + ".g.resources"; using (var stream = assembly.GetManifestResourceStream(resName)) { using (var reader = new System.Resources.ResourceReader(stream)) { return reader.Cast<DictionaryEntry>(). Select(entry => (string)entry.Key).ToArray(); } } }