目前,我試圖使用便攜式庫中的Web服務從服務器上載文件。對於每一個文件,我有這樣的:使用MvvmCross在本地存儲中加載文件
WebRequest request = WebRequest.Create("http://localhost:49364/" + url);
request.BeginGetResponse((aResult) =>
{
var retour = aResult.AsyncState as WebRequest;
WebResponse reponse = retour.EndGetResponse(aResult);
callback(reponse);
}, request);
在我的回調方法,我有這樣的:
byte[] bytes;
string currentFileName = fileName;
string categorie = currentFileName.Split('/').ElementAt(0);
string dir = currentFileName.Split('/').ElementAt(1);
using (var reader = new BinaryReader(reponse2.GetResponseStream()))
{
bytes = new byte[reponse2.ContentLength];
reader.Read(bytes, 0, (int)reponse2.ContentLength);
}
fileService.EnsureFolderExists(categorie);
fileService.EnsureFolderExists(fileService.PathCombine(categorie, dir));
fileService.WriteFile(currentFileName, bytes);
我得到整個文件的字節數組。但是,使用winRT,寫入文件會很快停止,並且我的本地文件不完整。如果我只嘗試上傳一個文件,那麼寫作也會停止。 但是,如果我嘗試使用Silverlight(我將MvvmCross擴展到Silverlight),那麼寫作就完成了。我還沒有測試過MonoDroid和MonoTouch。
所以,我的問題是:爲什麼寫作停止?
看到我的答案 - 它在大膽的評論 - ContentLength不解壓縮流長度。 PS我們希望你的silverlight端口在公開:) – Stuart
斯圖爾特, 我來找你對Mvvmcross Silverlight的改編。我可以用你的電子郵件地址向你發送代碼嗎?我不使用GitHub ... 而當你有代碼時,我有一個關於內存泄漏的問題;) 謝謝! – Titecarma
最好的聯繫方式在http://slodge.blogspot.co.uk/p/if-youve-got-questions.html – Stuart