如何从嵌入式XML文件(一个c#项目的一部分的XML文件)中读取?
我已经添加了一个XML文件到我的项目,我想从中读取。我想让XML文件与项目一起编译,因为我不希望它将是一个用户可以看到的资源。
我已经添加了一个XML文件到我的项目,我想从中读取。我想让XML文件与项目一起编译,因为我不希望它将是一个用户可以看到的资源。
任何想法?
>确保XML文件是.csproj项目的一部分。 (如果你可以在解决方案资源管理器中看到它,你就是好的。)
>将XML文件的“构建操作”属性设置为“嵌入资源”。
>使用以下代码在运行时检索文件内容:
>将XML文件的“构建操作”属性设置为“嵌入资源”。
>使用以下代码在运行时检索文件内容:
public string GetResourceTextFile(string filename) { string result = string.Empty; using (Stream stream = this.GetType().Assembly. GetManifestResourceStream("assembly.folder."+filename)) { using (StreamReader sr = new StreamReader(stream)) { result = sr.ReadToEnd(); } } return result; }
string fileContents = GetResourceTextFile("myXmlDoc.xml");
请注意,“assembly.folder”应替换为项目名称和包含资源文件的文件夹。
更新
实际上,assembly.folder应该替换为在XML文件所在的文件夹中创建的类的默认名称空间。这通常是defaultNamespace.folder0.folder1.folder2 ……