public static void Serialize(Stream stream, SendInvitationRequest instance)
 {
     if (instance.HasAgentIdentity)
     {
         stream.WriteByte(10);
         ProtocolParser.WriteUInt32(stream, instance.AgentIdentity.GetSerializedSize());
         Identity.Serialize(stream, instance.AgentIdentity);
     }
     if (instance.TargetId == null)
     {
         throw new ArgumentNullException("TargetId", "Required by proto specification.");
     }
     stream.WriteByte(18);
     ProtocolParser.WriteUInt32(stream, instance.TargetId.GetSerializedSize());
     EntityId.Serialize(stream, instance.TargetId);
     if (instance.Params == null)
     {
         throw new ArgumentNullException("Params", "Required by proto specification.");
     }
     stream.WriteByte(26);
     ProtocolParser.WriteUInt32(stream, instance.Params.GetSerializedSize());
     InvitationParams.Serialize(stream, instance.Params);
     if (instance.HasAgentInfo)
     {
         stream.WriteByte(34);
         ProtocolParser.WriteUInt32(stream, instance.AgentInfo.GetSerializedSize());
         AccountInfo.Serialize(stream, instance.AgentInfo);
     }
     if (instance.HasTarget)
     {
         stream.WriteByte(42);
         ProtocolParser.WriteUInt32(stream, instance.Target.GetSerializedSize());
         InvitationTarget.Serialize(stream, instance.Target);
     }
 }
 public void Serialize(Stream stream)
 {
     InvitationTarget.Serialize(stream, this);
 }