从程序集中获取所有资源的列表

时间:2018-09-05 07:09:31

标签: c# wpf

我有一个带有Resources的文件夹,并且想要获取所有paths的列表。

enter image description here

如果将它们设置为embedded resource,我可以通过

var resources = Assembly.GetExecutingAssembly().GetManifestResourceNames();

在遵循答案https://stackoverflow.com/a/1935035/6229375时,我不应该再使用embedded resource了,或者我做错了什么?

1 个答案:

答案 0 :(得分:3)

来自以下blog post

标记为“ Resource”的构建操作的文件将添加到名为ProjectName.g.resx的特殊resx文件中。该文件是在构建期间生成的,它不是项目的一部分。您可以通过创建ResourceManager实例并调用GetStream(filename)来访问“资源”文件的内容。此外,在WPF应用程序中,您可以通过C#中的Application.GetResourceStream()以及XAML中的东西来访问这些资源。

var resourceManager = new ResourceManager("ConsoleApp5.g", Assembly.GetExecutingAssembly());
var resources = resourceManager.GetResourceSet(CultureInfo.CurrentUICulture, true, true);
foreach (var res in resources)
{
    System.Console.WriteLine(((DictionaryEntry)res).Key);
}

其中(((DictionaryEntry)res).Value将是Stream。