我有一个派生类,它继承自一个绘制圆圈的低音类
public BraceHole(Brace brace, Vertex centerPoint, double diameter, VDrawI5.vdEntities entities) : base(centerPoint, diameter / 2, entities)
{
this.brace = brace;
this.centerPoint = centerPoint;
this.radius = diameter/2;
}
我正在尝试使用二进制序列化来序列化此类。
我像这样序列化它:
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
info.AddValue("brace", brace, typeof(Brace));
info.AddValue("radius", radius, typeof(double));
info.AddValue("centerPoint", centerPoint, typeof(Vertex));
}
序列化似乎没问题,但是当我像下面这样对它进行反序列化时;我将数据字段(大括号、半径和中心点)恢复正常;但我没有让圈子回来!我怀疑这是因为我没有反序列化基类。但是我尝试了,我不知道该怎么做!
protected BraceHole(SerializationInfo info, StreamingContext context)
{
try {
brace = (Brace)info.GetValue("brace", typeof(Brace));
radius = (double)info.GetValue("radius", typeof(double));
centerPoint = (Vertex)info.GetValue("centerPoint", typeof(Vertex));
}
catch{}
}
我的问题是如何反序列化它。我正在寻找这样的东西,这可能吗?
protected BraceHole(SerializationInfo info, StreamingContext context) : base(centerPoint, radius, entities)
{
VdProControl.VdProControl vectorDraw = (VdProControl.VdProControl)context.Context;
VDrawI5.vdEntities entities = vectorDraw.ActiveDocument.Entities;
try {
brace = (Brace)info.GetValue("brace", typeof(Brace));
radius = (double)info.GetValue("radius", typeof(double));
centerPoint = (Vertex)info.GetValue("centerPoint", typeof(Vertex));
}
catch{}
}