c# - 如何使用 Protobuf.net C# 序列化自定义对象的基本属性

标签 c# serialization deserialization protobuf-net

我有一个继承 PictureBox 控件的自定义类,当我反序列化该对象时,我丢失了所有基本属性,例如“名称”。这是类(class)。

    [ProtoContract]
[ProtoInclude(100,typeof(PictureBox))]
class Card : PictureBox
{        
    [ProtoMember(1)]
    public string CardId { get; set; }

    [ProtoMember(2)]
    public string CardName { get; set; }

    [ProtoMember(3)]
    public string CardColor { get; set; }

    [ProtoMember(4)]
    public string CardType { get; set; }

    [ProtoMember(5)]
    public string CardRarity { get; set; }

    [ProtoMember(6)]
    public bool Tapped { get; set; }

    [ProtoMember(7)]
    public bool Revealed { get; set; }
}

最佳答案

如果您不能修改基类,一种可能性(未经测试)是显示您需要什么:

[ProtoMember(8)]
public new string Name
{
    get { return base.Name; }
    set { base.Name = value; }
}

在制作自己的控件(例如,我自己的 Label),它似乎有效。

关于c# - 如何使用 Protobuf.net C# 序列化自定义对象的基本属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22298638/

相关文章:

c# - LongListSelector Windows Phone 8 中不必要的右填充

c# - 使用 C# 将非常大的项目列表序列化到 Azure blob 存储中

android - 如何从 Android 中的 WCF 服务反序列化复杂的 JSON 对象?

具有结构和字符串的 C# HashSet

c# - 适用于 Windows x64 的 ASP.NET Core 应用程序(.NET Framework)仅在 project.assets.json 中出错

c# - vstset.console.exe 程序集解析失败

c# - 选择性 POCO 属性

java - Spring中如何通过CrudRepository的 `findAll()`方法在序列化中包含回收对象的id?

c# - 反序列化后初始化私有(private)只读字段

java - 使用 xstream 反序列化一个 json 数组