首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >winRT DataContractSerialized

winRT DataContractSerialized
EN

Stack Overflow用户
提问于 2013-01-17 17:17:19
回答 1查看 410关注 0票数 0
代码语言:javascript
复制
class AppDataManager
{
    public static async Task SaveAsync<T>(T data, string fileName)
    {
        StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync(fileName, 
            CreationCollisionOption.ReplaceExisting);


        var stream = await file.OpenStreamForWriteAsync();
        var serializer = new DataContractSerializer(typeof(T));

        serializer.WriteObject(stream ,data);
        await stream.FlushAsync();
    }

    public static async Task<T> RestoreAsync<T>(string fileName)
    {
        try
        {
            var file = await ApplicationData.Current.LocalFolder.GetFileAsync(fileName);

            var instream = await file.OpenStreamForReadAsync();
            var serializer = new DataContractSerializer(typeof(T));
            return (T)serializer.ReadObject(instream);
        }
        catch (Exception)
        {
            return default(T);
        }
    }
}

在单击事件的MainPage.XAML中。

代码语言:javascript
复制
    private async void SaveButton_Click_1(object sender, RoutedEventArgs e)
    {

        data = new UserData()
        {
            Name = "ibraheem",
            ID = 1,
            phoneNumber = 799,
            Course = "java"
        };
        await AppDataManager.SaveAsync<UserData>(data, fileName);
    }

当我单击Save按钮时,它会给出异常

不能序列化“DesigningElements.UserData”类型。考虑用DataContractAttribute属性标记它,并用DataMemberAttribute属性对它的所有成员进行标记。如果类型是集合,请考虑使用CollectionDataContractAttribute标记它。有关其他受支持类型,请参阅文档。

EN

回答 1

Stack Overflow用户

发布于 2013-01-17 18:32:05

确保您的UserData类声明如下所示

代码语言:javascript
复制
[DataContract]
public class UserData
{
    [DataMember]
    public string Name { set; get; }
    [DataMember]
    public int ID { set; get; }
    [DataMember]
    public string phoneNumber { set; get; }
    [DataMember]
    public string Course { set; get; }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14384516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档