1

是否可以列出所有添加到程序集并标记为资源(未嵌入)的文件。

我试过GetManifestResourceNames方法。它仅适用于嵌入式资源。但我需要将该文件标记为资源,以便使用 uri 访问该文件,例如pack://application:,,,/ApplicationName;component/Resources/logo.png

谢谢

4

1 回答 1

5

您可以像这样访问它:

var image = new BitmapImage(new Uri("pack://application:,,,/ApplicationName;component/Resources/logo.png", UriKind.Absolute))

[编辑]

您可以通过调用此方法列出所有这些:

public static string[] GetResourceNames()
{
    var asm = Assembly.GetEntryAssembly();
    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();
    }
}
于 2012-12-17T12:06:06.703 回答