我想從一個單獨的項目中加載一個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