2011-02-01 59 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