我想从一个单独的项目中加载一个XML文件;其中一个项目是一个游戏引擎,它调用XML文档阅读器并引入一个指定文件相对目录的路径。从另一个项目加载资源?
从发动机
XDocument doc;
try
{
Stream stream = this.GetType().Assembly.GetManifestResourceStream(path);
doc = XDocument.Load(stream);
}
catch
{
doc = XDocument.Load(path);
}
从其他项目
string filePath = "Test.xml";
Npc npc = new Npc("somename", 2,filePath);
Test.xml
驻留在其他项目的根目录。 Npc
构造函数调用Statistics
对象构造函数,然后调用加载XDocument
的方法。发生这种情况时,filePath
只是向下穿过层。
我已经看过this,并尝试了嵌入式资源示例,这最终是我试图完成的任务,并且它不适用于我。
我在做什么错,在这里?
更新
我改变Text.xml
到Chronos.Text.xml
,因为这是该文件所在。在我的调试器中,我看到当我将该路径用作路径时,流简单地返回空值:
try
{
Stream stream = this.GetType().Assembly.GetManifestResourceStream("Chronos.Test.xml"); //returns null
doc = XDocument.Load(stream); //Exception thrown
}
catch
{
doc = XDocument.Load(path); //File not found
}
AssemblyDefaultNamespace是否有这样的事情?我似乎无法找到它。 – zeboidlund
右键单击树中的项目,选择“属性”。 'Application'选项卡上,右上角有一个名为'Default namespace'的选项。 – Coincoin
我更新了我的答案:不幸的是,我收到的所有内容都是空的。还有什么我可以做的修改查询? – zeboidlund