0

は、私は次のコードを使用して分離ストレージからオブジェクトを読んでいます:シリアル化されたオブジェクトを読み取る際にエラーが発生しましたか? 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(); 
      } 
     } 

私のオブジェクトを読み込むと、私は

「型「Microsoft.Xna.Framework.Mediaを読み込み、SecurityExceptionを取得しています。ソングはパブリックなパラメータのないコンストラクタを持たないため、部分的な信頼で非直列化できません。

読み込み中のオブジェクトクラスには、上記のエラーをスローしているSongプロパティが含まれています。

これには何らかの方法がありますか?ソングのプロパティを自分のオブジェクトに保存したいと思います。どんなアドバイスも大歓迎です!ありがとう!

答えて

0

あなたの目標は何ですか?

  1. アプリで曲を再生しますか?
  2. アプリで曲を作成していますか?
  3. ソングライブラリにアクセスしたいですか?
  4. ウェブから曲を取得しますか?

@あなたのプロジェクトのconentに曲を追加するだけです。シリアル化を使用する必要はありません。
@ 2メモリストリームを使用してそれを管理します。それを保存し、ストリームをロードします。 4ソングソング= Song.FromUri ..あなたは、切り抜いた方法でそれを格納する必要があり

@ 3使用MediaPlayerLauncher
@ MediaElement.SetSource(ストリームstream)
を使用してください。例外は、この場合、ソングが悪い選択である理由すべてを明らかにします。

この例を見てください。 http://social.msdn.microsoft.com/Forums/en/windowsphone7series/thread/3080021c-3960-49a0-ac5b-ebf2680592e1

+0

私はSongプロパティを含むオブジェクトを格納しています。 Isolated Storageからオブジェクトを読み取るときには、Songプロパティを読み取る必要があります。 – andersra

+0

私の現在の方法を使ってこれを回避する手段がないと言っていますか? – andersra

+0

ソングを保存するのではなく(なぜ私がそれを行うことができないのかが分かります)、私はMediaLibraryにインデックスを保存しました。今度は私のオブジェクトをロードし、すべてのソングプロパティをリセットすることができます。 – andersra

関連する問題