首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能序列化SolidColorBrush

不能序列化SolidColorBrush
EN

Stack Overflow用户
提问于 2013-11-27 19:39:04
回答 1查看 1.8K关注 0票数 3

由于不能序列化SolidColorBrush而无法序列化类的错误消息

这个班的公共财产是刷子。

有解决办法吗?

它更复杂。

我尝试使用可以序列化的后台属性。

问题是,我还需要冻结HighLight,以便可以在BackgroundWorker上创建

如果我对HighLight使用可序列化的支持属性,那么Highlight.Freeze将失败。

代码语言:javascript
复制
[Serializable()]
public class WordIdLenHightlight : Object
{
    private string highlightHex;
    public Int32 ID { get; private set; }
    public Byte Len { get; private set; }
    //[NonSerialized]
    public Brush Highlight { get;  private set; }
    //{ if (string.IsNullOrEmpty(highlightHex)) return null; else return new SolidColorBrush((Color)ColorConverter.ConvertFromString(highlightHex)); }
    public string HighlightHex { get { return highlightHex; } }
    public override bool Equals(Object obj)
    {
        // Check for null values and compare run-time types.
        if (obj == null) return false;
        if (!(obj is WordIdLenHightlight)) return false;
        WordIdLenHightlight comp = (WordIdLenHightlight)obj;
        return (comp.ID == this.ID);
    }
    public override int GetHashCode()
    {
        return ID;
    }
    public WordIdLenHightlight(WordIdLenHightlight w) 
    { 
        ID = w.ID; Len = w.Len; 
        Highlight = w.Highlight;
        highlightHex = w.Highlight.ToString();
        Highlight.Freeze(); 
    }
    public WordIdLenHightlight(Int32 id, byte len, Brush highlight) 
    { 
        ID = id; Len = len; 
        Highlight = highlight; 
        //highlightHex = Highlight.ToString();
        Highlight.Freeze(); 
    }
    public WordIdLenHightlight(Int32 id, byte len, string HighlightHex) 
    {
        highlightHex = HighlightHex;
        ID = id; 
        Len = len;
        Highlight = new SolidColorBrush((Color)ColorConverter.ConvertFromString(highlightHex));
        Highlight.Freeze();
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-27 19:44:32

您没有说明如何序列化类,但您可能可以使用属性(如BrushXmlIgnore )来修饰NonSerialized属性或其后台字段。

您可能希望序列化一些其他信息,而不是使您能够在反序列化上重构画笔,例如,它的颜色。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20251564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档