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