public override void GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) { throw new ArgumentNullException(nameof(info)); } info.AddValue("type", _type); info.AddValue("instance", _instance); base.GetObjectData(info, context); } }