in src/NMS.AMQP/Message/NmsBytesMessage.cs [364:391]
public void WriteObject(object value)
{
if (value == null)
throw new ArgumentNullException(nameof(value));
if (value is byte byteValue)
WriteByte(byteValue);
else if (value is char charValue)
WriteChar(charValue);
else if (value is bool boolValue)
WriteBoolean(boolValue);
else if (value is short shortValue)
WriteInt16(shortValue);
else if (value is int intValue)
WriteInt32(intValue);
else if (value is long longValue)
WriteInt64(longValue);
else if (value is float floatValue)
WriteSingle(floatValue);
else if (value is double doubleValue)
WriteDouble(doubleValue);
else if (value is string stringValue)
WriteString(stringValue);
else if (value is byte[] bytes)
WriteBytes(bytes);
else
throw new MessageFormatException("Cannot write non-primitive type:" + value.GetType().FullName);
}