如何通过xmlreader从资源中读取xml?

时间:2012-01-15 14:15:00

标签: c# wpf xml resources xmlreader

我想使用XmlReader读取我的项目中的file.xml(我只想在我的.exe中打包)。 它在我从应用程序文件夹中读取文件时有效,但我想从资源中读取它,这样我就可以在没有附加文件的情​​况下发出我的可执行文件。

我尝试了不同的方法,但没有一个可以工作。 我在WPF 3.0中使用C#。

你能帮助我吗?

2 个答案:

答案 0 :(得分:4)

添加您的xml文件,并在属性中将其标记为“嵌入式资源”。用以下内容加载它:

        Assembly a = Assembly.GetExecutingAssembly();
        using (Stream stream = a.GetManifestResourceStream("LoadResourceTest.mydata.xml"))
        using (XmlReader r = XmlReader.Create(stream))
        { 
            ...
        }

我的测试程序是LoadResourceText.exe,因此是此代码中的LoadResourceTest。

答案 1 :(得分:1)

如果您将任何东西作为资源加载,则必须使用 WPF Pack URI's

一些例子:

绝对路径

"pack://application:,,,/ResourceFile.xaml"
"pack://application:,,,/ReferencedAssembly;component/ResourceFile.xaml"

相对路径

"/ResourceFile.xaml"
"/ReferencedAssembly;component/ResourceFile.xaml"