Reading embedded XML file c#

后端 未结 6 989
春和景丽
春和景丽 2020-11-27 13:07

How can I read from an embedded XML file - an XML file that is part of a c# project? I\'ve added a XML file to my project and I want to read from it. I want the XML file to

6条回答
  •  孤独总比滥情好
    2020-11-27 13:39

    1. Make sure the XML file is part of your .csproj project. (If you can see it in the solution explorer, you're good.)

    2. Set the "Build Action" property for the XML file to "Embedded Resource".

    3. 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......

提交回复
热议问题