我正在使用以下代码从Isolated Storage读取对象:
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();
}
}
在阅读我的对象后,我收到一个读取
的SecurityException“类型'Microsoft.Xna.Framework.Media.Song'无法在部分信任中反序列化,因为它没有公共无参数构造函数。”
我正在读取的对象类包含一个抛出上述错误的Song属性。
有什么方法可以解决这个问题吗?我希望我的Song属性与我的对象一起存储。任何建议将不胜感激!谢谢!
答案 0 :(得分:0)
你的目标是什么?
@ 1只需在项目中为您的conent添加一首歌曲即可。无需使用序列化。
@ 2使用内存流来对其进行维护。保存然后加载流。使用MediaElement.SetSource(Stream stream)
@ 3使用MediaPlayerLauncher
@ 4 Song song = Song.FromUri ..
您需要以不同的方式存储它。在这种情况下,异常解释了为什么一首歌是一个糟糕的选择。