1

WPF我将's子分类Paragraph如下,现在我想对其进行序列化和反序列化,包括附加数据。

xamlString = XamlWriter.Save(_richTextBox.Document);不成功 - 扩展数据被省略。

有办法告诉XamlWriter包含这些额外数据吗?

这是扩展数据:

[ContentProperty("Inlines")]
public class ExParagraph : Paragraph
{
    public ParagraphMetaData MetaData = new ParagraphMetaData();
}

[ContentProperty("Inlines")]
public class ParagraphMetaData {
    private Guid _updaterParagraphUniqueId;

    public Guid UpdaterParagraphUniqueId {
        get { return _updaterParagraphUniqueId; }
        set {
            _updaterParagraphUniqueId = value;
            IsUpdaterParagraph = value != default(Guid);
        }
    }

    public bool IsUpdaterParagraph { get; private set; }
    public string Name;
    public bool DoNotToggleColor;
}

编辑 - 解决方案:

感谢响应者:字段必须是 r/w 属性

此外,这[ContentProperty("Inlines")]是根本问题 - 它阻止了子类的序列化Paragraph

4

1 回答 1

2

字段没有序列化,只有属性。它们还必须是读写属性,而不是只读属性。这篇文章已经很老了,但大部分信息仍然适用:

http://blogs.msdn.com/b/mikehillberg/archive/2006/09/16/xamlwriter.aspx

编辑:另请阅读http://msdn.microsoft.com/en-us/library/ms754193.aspx了解更多信息。

于 2013-08-29T13:41:12.137 回答