问题描述
||
我有一个名为Location的课程:
[Serializable()]
public class Location
{
public int id { get; set; }
public double latitude { get; set; }
public double longitude { get; set; }
public string name { get; set; }
public bool isAnoption { get; set; }
public double distanceFromYaelsParents { get; set; }
public double distanceFromGabrielsParents { get; set; }
public FlowDocument notes { get; set; }
}
notes
(类型FlowDocument
)获取窗口中拥有的WPF RichTextBox的内容。
我想使用一个简单的序列化方法,以便将从此类创建的对象保存到二进制文件中(以后再读取它们)。假设该项目称为location
:
using (Stream stream = File.Open(dataFileName,FileMode.Create))
{
BinaryFormatter bin = new BinaryFormatter();
bin.Serialize(stream,location);
}
因此,只要不包括FlowDocument
,一切都会很酷。我似乎不设法序列化那个。
能做到吗或者,是否有更好的方法来二进制(不是XAML)保存并读取其中包含图像和格式文本的RichTextBox的内容?
请详细说明,我对这些事情还很陌生。
谢谢
解决方法
FlowDocument无法序列化。有关可能的解决方案,请参阅David Ward对StackOverflow问题的回答。
基本思想:将FlowDocument转换为XAML(XML)并对其进行序列化。
在您的情况下,我将从序列化中排除FlowDocument属性,而是在getter / setter中具有可转换为FlowDocument的字符串属性。