如何将xml文件嵌入到资源文件中

Posted

技术标签:

【中文标题】如何将xml文件嵌入到资源文件中【英文标题】:how to embed an xml file to a resource file 【发布时间】:2010-08-23 13:14:37 【问题描述】:

我想在我的项目中将一个 xml 文件嵌入到一个资源文件中,每当我需要该文件时,我必须从资源中获取它并使用它,如何做到这一点,我想根据具体情况修改 xml 文件的内容我的要求。如何做到这一点

【问题讨论】:

【参考方案1】:

如果您将 XML 文件添加到 Visual Studio 项目,并在其属性窗口中选择 构建操作:嵌入式资源,则该文件将嵌入到该项目的构建输出工件中.

要从代码中访问它,请使用类似:

string resourceName = "Namespace.Prefix.FileName.xml";
Assembly someAssembly = LoadYourAssemblyContainingTheResource();
XmlDocument xml = new XmlDocument();
using (Stream resourceStream = someAssembly.GetManifestResourceStream(resourceName))

    xml.Load(resourceStream);

// The embedded XML resource is now available in: xml

如果您正在加载的资源嵌入到您自己的程序集中,您可以执行Assembly.GetExecutingAssembly() 之类的操作来实现我在上面列出的LoadYourAssemblyContainingTheResource(),或者可能是typeof(SomeTypeInYourResourceAssembly).Assembly

不清楚您所说的“想要修改内容”是什么意思 - 您无法在运行时修改程序集内的资源,但是每当您更改 XML 文件并重新编译时,都会嵌入新版本。

【讨论】:

我需要根据文件设置一些颜色代码,嵌入后如何获取文件和读取值 如果我使用 getmanifestresourcestream 我会得到一个流,我应该把它作为一个文件,我必须使用文件来加载。是这样吗? 更新示例以显示从资源流中实际加载 XmlDocument。

以上是关于如何将xml文件嵌入到资源文件中的主要内容,如果未能解决你的问题,请参考以下文章

在运行时更改嵌入式资源文件

delphi中资源文件调用

Windows7中资源管理器的作用是啥?

如何将资源嵌入到单个可执行文件中?

如何从解决方案中的文件加载 XML 文件,使用嵌入式资源构建?项目 > 跨平台 > Xamarin.Forms

C#中资源文件的动态引用