2010-08-23 66 views
5

我想将xml文件嵌入到项目中的资源文件中,只要我需要该文件,我必须从资源中获取它并使用它,如何执行此操作并且我想要根据我的要求修改xml文件的内容如何执行此操作如何将XML文件嵌入到资源文件

回答

11

如果您将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文件并重新编译,新版本都将被嵌入。

+0

我需要t0根据文件设置一些颜色代码,如何获得文件和读取值后,我嵌入它 – karthik 2010-08-23 13:24:07

+0

如果我使用getmanifestresourcestream我会得到一个流,我应该把它作为一个文件,我必须使用文件加载。它的方式? – karthik 2010-08-23 13:36:08

+1

已更新示例以显示资源流中XmlDocument的实际加载。 – Cumbayah 2010-08-23 13:45:15