0

Je lis un objet de stockage isolé avec le code suivant:Erreur lors de la lecture de l'objet sérialisé? WP7

public static T Load<T>(string name) where T : class, new() 
    { 
     T loadedObject = null; 
     using (IsolatedStorageFile storageFile = IsolatedStorageFile.GetUserStoreForApplication()) 
     using (IsolatedStorageFileStream storageFileStream = new IsolatedStorageFileStream(name, System.IO.FileMode.OpenOrCreate, storageFile)) 
     { 
      if (storageFileStream.Length > 0) 
      { 
        DataContractSerializer serializer = new DataContractSerializer(typeof(T)); 
        loadedObject = serializer.ReadObject(storageFileStream) as T; //####Error Here#### 
      } 
      if (loadedObject == null) 
      { 
       loadedObject = new T(); 
      } 
     } 

En lisant mon objet que je reçois un SecurityException qui se lit

« Le type « Microsoft.Xna.Framework.Media. Song 'ne peut pas être désérialisé en confiance partielle car il n'a pas de constructeur public sans paramètre. "

Ma classe d'objet en cours de lecture contient une propriété Song qui renvoie l'erreur ci-dessus.

Y a-t-il un moyen de contourner ce problème? Je voudrais que ma propriété Song soit stockée avec mon objet. Tout avis serait grandement apprécié! Merci!

Répondre

0

Quel est votre objectif?

  1. Voulez-vous simplement lire une chanson dans l'application?
  2. Est-ce que vous créez votre chanson dans l'application?
  3. Voulez-vous avoir accès à la bibliothèque de chansons?
  4. Voulez-vous obtenir la chanson sur le Web?

@ 1 Ajoutez simplement une chanson à votre conent dans votre projet. pas besoin d'utiliser la sérialisation.
@ 2 Utilisez le flux de mémoire pour le gérer. enregistrez-le, puis chargez le flux. Utilisez MediaElement.SetSource (stream Stream)
@ 3 Utilisez MediaPlayerLauncher
@ 4 chanson Song = Song.FromUri ..

Vous devez stocker d'une manière diffrent. Exception explique à peu près tout pourquoi une chanson est un mauvais choix dans ce cas.

Regardez cet exemple. http://social.msdn.microsoft.com/Forums/en/windowsphone7series/thread/3080021c-3960-49a0-ac5b-ebf2680592e1

+0

Je stocke un objet qui contient une propriété Song. Lorsque je lis l'objet à partir d'un stockage isolé, la propriété Song doit être lue. – andersra

+0

Voulez-vous dire qu'il n'y a aucun moyen de contourner cela en utilisant ma méthode actuelle? – andersra

+0

Au lieu de stocker un morceau (je me rends compte maintenant pourquoi cela ne me permettra pas de le faire), j'ai stocké l'index dans ma MediaLibrary.Songs. Maintenant, je peux charger mes objets et réinitialiser toutes les propriétés de la chanson. – andersra

Questions connexes