首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在.NET中序列化System.Drawing.Color

在.NET中序列化System.Drawing.Color
EN

Stack Overflow用户
提问于 2010-03-20 05:34:11
回答 2查看 2.8K关注 0票数 3

我对具有System.Drawing.Color成员的类使用了默认的.NET序列化。代码现在正在被人们使用,我需要向类中添加一个额外的成员,但仍然需要对旧版本进行反序列化。

因此,我尝试了标准的方法: ISerializable接口,使用SerializationInfo方法获取整数和字符串成员。

问题:我的类也有一个System.Drawing.Color成员,但是SerializationInfo没有提供读取这个数据类型的"GetColor“方法。我尝试过将它作为一个整数和一个字符串来获取,并将其转换为System.Drawing.Color,但是没有成功。

有人知道如何从SerializationInfo反序列化System.Drawing.Color吗?

EN

回答 2

Stack Overflow用户

发布于 2010-03-20 05:46:25

使用ISerializable不是处理版本控制的推荐方法。在这个MSDN library article中,OptionalField的内部和外部都有很好的描述。

回答你的问题: SerializationInfo.GetValue("fieldName",typeof( color ))应该会给你颜色。你需要转换返回值。

票数 1
EN

Stack Overflow用户

发布于 2010-03-20 18:53:22

我以前也用过这样的东西。

代码语言:javascript
复制
 <Xml.Serialization.XmlIgnore()> Public BackColour As Drawing.Color

        Public Property xmlBackColour() As Integer
            Get
                Return BackColour.ToArgb
            End Get
            Set(ByVal value As Integer)
                BackColour = Drawing.Color.FromArgb(value)
            End Set
        End Property
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2480719

复制
相关文章

相似问题

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