在C#控制台应用程序中使用嵌入式资源

11

我正在尝试通过右键单击文件-> Build Action-> Embedded Resource将XML文件嵌入C#控制台应用程序中。

那么,我该如何访问这个嵌入的资源呢?

XDocument XMLDoc = XDocument.Load(???);

编辑: 大家好,尽管这个问题受到了很多责备,但是这里有一个更新。

我通过使用 

XDocument.Load(new System.IO.StreamReader(System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("Namespace.FolderName.FileName.Extension")))

之前没有起作用是因为项目中包含资源文件的文件夹名称未被包括在内(我找到的所有示例似乎都没有这个)。

感谢所有试图帮助我的人。


2
你是指像这个或者这些可能的重复问题吗? - M.Babcock
可能是重复的问题:如何发现嵌入资源的“路径”? - John Leidegren
1
正是我所需要的。很遗憾它被关闭了,因为它太局限了。 - Chuck Conway
5
SO(指Stack Overflow)的版主吃了太多香蕉?这个问题的本地化涵义是什么? - Sascha
1个回答

14

差不多是这样的

using System.IO;
using System.Reflection;
using System.Xml;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var stream =  Assembly.GetExecutingAssembly().GetManifestResourceStream("ConsoleApplication1.XMLFile1.xml");
            StreamReader reader = new StreamReader(stream);

            XmlDocument doc = new XmlDocument();
            doc.LoadXml(reader.ReadToEnd());
        }
    }
}

这是一个链接,指向微软文档,其中描述了如何实现它。 http://support.microsoft.com/kb/319292


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接