我试图在可序列化对象的子类上覆盖ISerializable.GetObjectData。我想用我自己的值替换其中一个值,但我无法弄清楚如何做到这一点。这是我尝试过的。
public override void GetObjectData(SerializationInfo info, StreamingContext context)
{
base.GetObjectData(info, context);
//replace the message value in info with my own value
info.AddValue("Message", this.Message);
}
它引发了一个例外"Cannot add the same member twice to a SerializationInfo object"
答案 0 :(得分:1)
info.UpdateValue(name, value, type);
请注意,此API并不存在于常规.NET中,但由于您的目标是.NET核心,因此您应该可以使用它。