-
Make sure the XML file is part of your .csproj project. (If you can see it in the solution explorer, you’re good.)
-
Set the “Build Action” property for the XML file to “Embedded Resource”.
-
Use the following code to retrieve the file contents at runtime:
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; }
Whenever you want to read the file contents, just use
string fileContents = GetResourceTextFile("myXmlDoc.xml");
Note that “assembly.folder” should be replaced with the project name and folder containing the resource file.
Update
Actually, assembly.folder
should be replaced by the namespace in which a class created in the same folder as the XML file would have by default. This is typically defaultNamespace.folder0.folder1.folder2.....
.