2016-02-01 240 views
1

我有一個Xamarin.forms共享的項目,我想編寫,並從具有對每個平臺(Android,iOS和Windows)的本地駐留在XML文件中讀取。讀取和寫入XML文件

我提到這一點:Working with files,但我似乎得到錯誤:

Error 2 The type or namespace name 'SharedPage' could not be found (are you missing a using directive or an assembly reference?) 

在行:var assembly = typeof(SharedPage).GetTypeInfo().Assembly;

由於我是新來Xamarin.forms我也想知道在哪裏必須爲每個平臺項目放置文件。

+0

正如擡起頭,我發現Xamarin.Forms起初非常有吸引力,但最終不得不放棄它由於嚴重的性能問題和缺乏UI控制。 –

+0

我不知道這是否會有所作爲,但如果我記得正確地將'typeof(SharedPage)'改爲'typeof(this)'爲我工作。 –

+0

@OwenJames似乎並沒有爲我工作:-( – Arti

回答

1

在你的代碼,你所引用的命名空間Test151.XML.WinPhone,但是你應該是指真正的命名空間是Test151.WinPhone.XML,爲您WinPhone項目有Test151.WinPhone組裝根。

所以,你有你的TryFile.cs內改變這種: -

#if WINDOWS_PHONE 
      //var resourcePrefix = "Test151.XML.WinPhone."; 
      var resourcePrefix = "Test151.WinPhone.XML."; 
#endif 

你也試圖從XML文件夾,其中您還沒有該文件設置爲EmbeddedResource獲得的資源,所以你需要也這樣做。

此外,您嘗試使用的Xamarin.Forms組裝,試圖從加載資源,所以在那裏,因爲你有這樣的: -

var assembly = typeof(ContentPage).GetType().Assembly; 

您需要將其更改爲沿此線的東西: - 。(由於它是一個SharedProject它會給你正確的組件,其中從加載資源

var assembly = typeof(TryFile).Assembly; 

最後一件事,你提你想閱讀並從XML文件編寫這部分代碼你已經從'Wor你提到的King with files'頁面不會幫助你,因爲你正試圖加載一個嵌入式資源,除非你的目標是將它寫入文件系統,否則你不能回寫。

它需要真正重點,如果你的目標是完成讀取和寫入的本地存儲的文件,該文件的後半部分。

+1

Hi @pete您能否幫我解決PCL項目的正確目錄? 'VAR總成= typeof運算(TryFile).Assembly;'不用於PCL項目 – Arti

+0

工作,我不得不按客戶要求去爲它移動到PCL項目。 OMG! – Arti

+0

爲什麼沒人解釋這種類型?我找不到解釋。你是否修復PCL? – Dpedrinha