WPF - простая сериализация данных в формате RTF с помощью FlowDocument - PullRequest
1 голос
/ 25 июня 2011

У меня есть класс с именем 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 с изображениями и форматированным текстом в нем?

Пожалуйста, уточните, я довольно новичок в этих вещах.

Спасибо

1 Ответ

2 голосов
/ 25 июня 2011

FlowDocument не сериализуем. См. Ответ Дэвида Уорда на этот вопрос StackOverflow для возможного решения.

Основная идея: преобразовать FlowDocument в XAML (XML) и сериализовать его.

В вашем случае я бы исключил свойство FlowDocument из сериализации и вместо этого имел бы строковое свойство, которое преобразуется в / из FlowDocument в получателе / ​​установщике.

...