![](/img/trans.png)
[英]How to load an XML file from a file in the solution, build with Embedded Resource? Project > Cross Platform > Xamarin.Forms
[英]How to load an XML file from a file in the solution, build with Embedded Resource?
这是我的解决方案的概述:
我已将构建设置为“嵌入式资源”,并且在生成应用程序时,XML文件未出现在/ Release文件夹中。 这是正确的,我想要这种行为。
现在,我正在尝试将该文件加载到XDocument中,以便可以解析其中的数据:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Parsing XML.");
XDocument championXml = XDocument.Load("Champions.xml");
Console.ReadKey();
}
}
而且我收到文件未找到错误,因为它试图在发布文件夹的完整路径中找到xml文件。
如何将这些数据正确加载到XDocument中?
使用GetManifestResourceStream()
:
var asm = Assembly.GetExecutingAssembly();
using(var stream = asm.GetManifestResourceStream("Namespace.Champions.xml"))
{
// ...
}
可以通过调用GetManifestResourceNames()
找到用于引用资源的确切名称。
直接引用资源属性,并使用Parse代替load:
XDocument championXml = XDocument.Parse(Properties.Resources.ChampionsXML);
^^^^^^^^^^^^
//Name of your resource |
命名空间会有所不同,具体取决于您的项目结构。
您应该从汇编中获得流:
Assembly.GetExecutingAssembly().GetManifestResourceStream(name)
其中的名称将类似于:'LinqToXml.Champions.xml'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.