我有一个自定义类,该类继承了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/