In InvokeDeviceMethodAsync allow non JSON payloads
In the InvokeDeviceMethodAsync you can only set payload values that are valid JSON (using the SetPayloadJson function). See: https://github.com/Azure/azure-iot-sdk-csharp/blob/master/iothub/service/src/JobClient/CloudToDeviceMethod.cs
Via the Azure Portal however, you can set any value as the Payload (JSON, but also plain strings). It would make sense to have the SDK also allow to set payload values that are not JSON.