c#解决方案资源管理器中的XML文件
本文关键字:XML 文件 解决方案 资源管理器 | 更新日期: 2023-09-27 18:05:42
我有一个3D对象和它们的数据点。数据由1000个点组成
以下为数据点。
public static List<MyLine> OpenProject(string _file)
{
List<MyLine> Lines = new List<MyLine>();
XmlDocument doc = new XmlDocument();
doc.LoadXml(_file);
XmlNodeList coordinates = doc.SelectNodes("/Siene/MyLine/Coordinates");
foreach (XmlNode coordinat in coordinates)
{
int x1 = Int32.Parse(coordinat["Start"].Attributes["X"].Value);
int y1 = Int32.Parse(coordinat["Start"].Attributes["Y"].Value);
int z1 = Int32.Parse(coordinat["Start"].Attributes["Z"].Value);
MyLine czg = new MyLine(x1, y1, z1);
lines.Add(czg);
}
return lines;
}
不是从外部文件(doc.LoadXml(_file))加载,XML文件必须位于解决方案资源管理器中,并且所有数据点必须能够从中读取。
你能告诉我怎么做吗?
问候,马克吐温
在解决方案
- 将文件添加到您的解决方案中。 右键单击文件,选择"属性"。
- 更改"Build Action" => "Embedded Resource"
在你的代码
- 使用Assembly类获取包含嵌入资源的程序集的引用(即Assembly. getexecutingassembly ())
- 使用assembly ref获取到文件的流(即assemblyRef.GetManifestResourceStream("assemblyName.filename.xml"))
- XML文档应该能够加载流。
假设我的程序集被称为"Hello"。这个文件被嵌入到项目的根目录,叫做foo.xml,你可以使用下面的代码:
var myAss = Assembly.GetExecutingAssembly();
using (var s = myAss.GetManifestResourceStream(string.Format("{0}.foo.xml",
myAss.GetName().Name)))
{
var doc = new XmlDocument();
doc.Load(s);
}
您可以将该文件作为资源嵌入:
资源文件(Visual Studio)
如何在。net程序集中嵌入资源文件
如何检索嵌入的xml资源?