Actuellement, j'essaie de télécharger des fichiers à partir d'un serveur à l'aide des services Web de la bibliothèque portable. Pour chaque fichier, je fais ceci:Charger des fichiers dans un stockage local avec 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);
Sur ma méthode de rappel, je fais ceci:
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);
Je reçois tout le fichier comme un tableau d'octets. Mais, avec winRT, l'écriture du fichier s'arrête rapidement et mon fichier local n'est pas complet. Si j'essaie de télécharger un seul fichier, l'écriture s'arrête également. Mais, si j'essaye avec Silverlight (j'ai étendu MvvmCross à Silverlight), l'écriture est terminée. Je n'ai pas encore testé pour MonoDroid et MonoTouch.
Alors, ma question est la suivante: Pourquoi l'écriture cesse?
voir ma réponse - il est dans le commentaire en gras - ContentLength n'est pas la longueur du flux décompressé. PS Nous voulons votre port silverlight en public :) – Stuart
Stuart, Je viens à vous sur l'adaptation de Mvvmcross Silverlight. Puis-je avoir votre adresse e-mail pour vous envoyer le code? Je n'utilise pas GitHub ... Et quand vous avez le code, j'ai une question pour vous concernant une fuite de mémoire;) Merci! – Titecarma
les meilleurs détails de contact sont sur http://slodge.blogspot.co.uk/p/if-youve-got-questions.html – Stuart