我有一个名为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的内容,其中包含图像和格式化文本?
请详细说明,我对这些事情都很陌生。
由于
答案 0 :(得分:2)
FlowDocument不可序列化。有关可能的解决方案,请参阅David Ward对this StackOverflow question的回答。
基本思路:将FlowDocument转换为XAML(XML)并将其序列化。
在您的情况下,我会从序列化中排除FlowDocument属性,而是具有一个字符串属性,该属性可以转换为getter / setter中的FlowDocument。