序列化会引发异常

时间:2013-09-11 10:12:20

标签: c# windows-runtime windows-store-apps

我正在做的是通过后台任务序列化类并抛出异常

  

无法序列化成员'BackgroundTask.BackgroundTaskDescription.Emails'的类型   “System.Collections.Generic.IList

我的班级结构如下所示。

public sealed class BackgroundTaskDescription
{
    public string Subject { get; set; }
    public string Message { get; set; }
    public string dueTime { get; set; }
    public IList<string> Emails { get; set; }
}

我是如何实现这一点的。我需要List来通过后台任务存储电子邮件。

2 个答案:

答案 0 :(得分:3)

XmlSerializer不处理IList<T>类型的属性。有一些解决方法,最简单的方法是将属性的类型更改为List<T>.

将适当的[Serializable]和Xml属性添加到您的班级。

添加代码段,

[Serializable]
        public sealed class BackgroundTaskDescription
        {

            public BackgroundTaskDescription()
            {
                Subject = string.Empty;
                Message = string.Empty;
                dueTime = string.Empty;
                Emails = new List<string>();
            }

            public string Subject { get; set; }
            public string Message { get; set; }
            public string dueTime { get; set; }
            public List<string> Emails { get; set; }
        }

答案 1 :(得分:0)

我通过改变类的结构找到了解决方案,如下所示

public sealed class BackgroundTaskDescription
{
    public string Subject { get; set; }
    public string Message { get; set; }
    public string dueTime { get; set; }
    public string[] Emails { get; set; }
}