我有一个自定义类,该类继承了PictureBox控件,当我反序列化对象时,例如,缺少所有基本属性,如“名称”。这是课程。

    [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; }
}


在制作自己的控件(例如,我自己的DefaultAttribute)时,我正在使用这种技术将我自己的属性(或更改Label值)应用于标准控件的某些属性,并且它似乎可以工作。

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

10-11 23:14
查看更多