我正在尝试使用XmlSerializer在我的Windows Phone应用程序中读取/保存xml文件。不幸的是我无法读/写它因为我在班上使用FontFamily:
public class Article
{
public string name { get; set; }
private FontFamily _fontitem;
public FontFamily FontItem
{
get
{
return _fontitem;
}
set
{
_fontitem = value;
RaisePropertyChanged(() => FontItem);
}
}
}
我正在使用名为StorageHelper的类,就像这里一样:http://blogs.msdn.com/b/dawate/archive/2010/08/31/windows-phone-7-xml-isolatedstorage-example.aspx 我没有上课“Jog”,而是使用我的班级“文章”。
当我尝试加载/保存xml时出现此错误:“ fontfamily无法序列化,因为它没有无参数的构造函数”
答案 0 :(得分:1)
在这种情况下,您可以从其名称创建FontFamily
。因此,您可以将Article
类修改为:
[Serializable]
public class Article
{
private string _fontItemString;
public string Name { get; set; }
[XmlIgnore]
public FontFamily FontItem
{
get
{
return new FontFamily(FontItemString);
}
}
public string FontItemString
{
get { return _fontItemString; }
set
{
_fontItemString = value;
RaisePropertyChanged(() => FontItem);
}
}
}
这样您就不会序列化FontFamily
对象本身,而是序列化要使用的字体系列的名称。每当字体系列字符串发生更改时,您都可以通知实际的FontItem
已更改,然后从FontFamily
初始化FontItemString