【发布时间】:2016-01-28 20:56:43
【问题描述】:
我有一个使用
序列化的类 (MyClass)public class MyClass
{
public string Name { get; set;}
public BitmapImage image { get; set;}
}
private ObservableCollection<MyClass> _myClass;
private const string fileName = "myclass.json";
public DataSource()
{
_myClass = new ObservableCollection<MyClass>();
}
public async Task<ObservableCollection<MyClass>> GetMyClass()
{
await ensureDataLoaded();
return _myClass;
}
private async Task ensureDataLoaded()
{
if(_myClass.Count == 0;)
await GetMyClassDataAsync();
}
private async Task GetMyClassDataAsync()
{
if(_myClass.Count != 0)
return;
var jsonSerializer = new DataContractJsonSerializer(typeof(ObservableCollection<MyClass>));
try
{
using(var stream = away ApplicationData.Current.LocalFolder.OpenStreamForReadAsync(fileName))
{
_myClass = (ObservableCollection<MyClass>) jsonSerializer.ReadObject(stream);
}
}
catch
{
_myClass = new ObservableCollection<MyClasss>();
}
}
public async void AddMyClass(MyClass myClass)
{
_myClass.Add(myClass);
await SaveMyClassDataAsync();
}
public async void DeleteMyClass(MyClass myClass)
{
_myClass.Remove(myClass);
await SaveMyClassDataAsync();
}
private async Task SaveMyClassDataAsync()
{
var jsonSerializer = new DataContractJsonSerializer(typeof(ObservableCollection<MyClass>));
using (var stream = await ApplicationData.Current.LocatlFolder.OpenStreamForWriteAsync(fileName,
CreationCollisionOption.ReplaceExisting))
{
jsonSerializer.WriteObject(stream, _myClass);
}
}
当我将 bitmapImage 添加到我的类时,它不能被序列化。
我已经阅读了有关将 bitmapImage 转换为字符串或字节数组的信息,但我无法弄清楚代码。
有谁知道如何将 bitmapImage 转换为可以序列化的格式?
奖金
将其转换为 json 格式后。我将如何将其转换回来??
更多奖励
如果我有一个链接到 XAML 中每个 MyClass 对象的所有图像的列表视图,我需要做些什么特别的事情来让 myClass 保存一个图像和一个序列化图像,以便我可以将图像保存在 json 中还要使用图像从 MyClass 绑定到 XAML 中的图像?
【问题讨论】:
标签: json serialization uwp bitmapimage