11
我有一個資源程序集,其中包含的圖像文件使用資源或內容構建動作。這使得這些文件可以使用Uris訪問。但是我找不到列舉這些資源的方法。
如果我設置構建動作嵌入的資源有可能枚舉用下面的代碼文件:在運行時枚舉.NET程序集資源
string[] resources = Assembly.GetExecutingAssembly().GetManifestResourceNames();
,但它反過來又使這些文件無法訪問使用的URI。
的問題是 - 如何枚舉與任何資源或內容生成操作編譯資源?
注意:正如Thomas Levesque指出的那樣,可以通過利用AssemblyAssociatedContentFileAttribute來枚舉這些資源,但它似乎只適用於WPF應用程序程序集,而不適用於類庫。所以問題仍然存在。
這隻有在程序集具有這樣的屬性集時纔有效 - 例如, WPF應用程序會自動設置它,並且僅適用於使用* Content * build動作構建的文件。在ClassLibrary程序集的情況下,不存在這樣的屬性。即使在彙編代碼中,我也找不到枚舉這些資源的方法。 – 2010-03-25 18:35:04
更新中的代碼回答了原始問題,但仍不是通用解決方案:)在類庫的情況下,它列舉了使用* Content *,* Resource *和* Embedded Resource *構建操作構建的所有資源。但在WPF應用程序的情況下,它只枚舉使用* Embedded Resource *構建操作構建的資源。因此,爲了枚舉WPF App中的所有資源,上述兩種方法的組合都是必需的。 – 2010-03-26 10:02:18
可以對這段代碼進行細化以直接從特定文件夾獲取資源,而無需過濾返回值? (說,我有幾個資源文件夾(可以從解決方案資源管理器中看到),其中一個包含圖像,我想要加載。) – ziyuang 2011-10-07 17:14:41