我在我的項目中添加了一個名爲CrpResource.resx的資源文件。 然後,在將資源文件添加到資源文件後,我想訪問它並通過代碼讀取它。使用C#,如何訪問資源文件(.resx)並從添加到文本文件中讀取?
請提出任何建議。
我在我的項目中添加了一個名爲CrpResource.resx的資源文件。 然後,在將資源文件添加到資源文件後,我想訪問它並通過代碼讀取它。使用C#,如何訪問資源文件(.resx)並從添加到文本文件中讀取?
請提出任何建議。
_assembly = Assembly.GetExecutingAssembly();
_textStreamReader = new StreamReader(_assembly.GetManifestResourceStream("MyNamespace.MyTextFile.txt"));
@Brij已經提供了答案的核心。
但是,這裏的難點在於知道資源名稱是什麼 - 在將文件作爲資源來解析其完全限定名稱後,並不總是那麼容易。
一個簡單的方法來找出是臨時加入這一行代碼:
string[] names = Assembly.GetExecutingAssembly().GetManifestResourceNames();
然後運行該程序,你可以在調試器中查看所有可用資源的「名稱」列表中。
正如我在CrpResource.Designer.cs中看到的,我添加到資源文件中的每件事都是作爲一個屬性。 我該如何利用這個機會? – odiseh 2010-01-09 08:44:59
您可以直接通過屬性名稱訪問資源,但是這會爲您提供資源的實例而不是其原始數據(例如,當您嘗試使用它時,像'Properties.Resources.AppIcon'這樣的圖標就會成爲Bitmap對象。因此必須要求它串行化爲一個MemoryStream,然後如果你想從它那裏獲得原始的「文件」數據,則從該MemoryStream中讀回) – 2010-01-09 09:07:35
Resx在閱讀時有一些細微差別......使用設計器生成的代碼與resx一起使用會出現什麼問題?也許有一些反思?或者,或者 - 不要使用resx;只需將文件包含爲資源。 – 2010-01-09 09:10:14