2011-02-01 49 views
1

我想將字典文件作爲資源嵌入到我的項目中,以便它是應用程序的一部分而不是單獨的文件。加載字典的函數將使用URi或字符串作爲文件的路徑。 (例如:spellChecker.MainDictionary.LoadAsync(URiToMyDictionaryFile);)。C#Silverlight - 如何訪問我設置爲「資源」的文件?

如何訪問設置爲「資源」或「嵌入資源」的文件?另外,兩者有什麼區別?

目標只是將文件作爲應用程序的一部分,因此我不必擔心在分發應用程序時確保它包含在內。

再次感謝!

-Sootah

回答

0

從Silverlight的角度來看「嵌入的資源」和「資源」之間的區別是,Silverlight的不能訪問的「嵌入的資源」,所以不使用它。

訪問文件添加到DLL組件爲「資源」你需要添加的組件加上的名字「;組件」訪問它的URI的第一個元素: -

spellChecker.MainDictionary.LoadAsync(new Uri("/yourProjectName;component/yourDictionary.dic",UriKind.Relative)); 

如果您正在構建XAP(即您未創建Silverlight庫),那麼是否考慮使用「內容」而不是「資源」。這包括將該文件作爲XAP的一部分與dll一起使用,而不是將其存儲在dll中。

+0

由於一些奇怪的原因,它仍然不適合我。我將文件添加到項目中,將其設置爲資源,並使用以下代碼: `Uri dctUri = new Uri(「/ SpellCheckTestPrj; component/C1Spell_en-US.dct」,UriKind.Relative); spellChecker.MainDictionary.LoadAsync(dctUri);` 但試圖加載它時,它聲明它不能被找到。我編碼的項目,彈出一個錯誤信息框被拋出,我已經發布了這裏的截圖:http://www.tweaksforgeeks.com/shatner/DctLoadError.png 圖片和我參考的東西這種方式在XAML中工作得很好。 – Sootah 2011-02-01 09:55:19