У меня есть конечная точка веб-API с объявлением:
public async Task VisitorConnected(Guid? fingerprint, long property_id)
Иногда я хочу отправить null
для первого параметра. Я прочитал один из потоков, чтобы отправить его как "null"
в кавычках. Однако я получаю:
System.IO.InvalidDataException: Error binding arguments. Make sure that the types of the provided values match the types of the hub method being invoked.
---> System.FormatException: The JSON value is not in a supported Guid format.
at System.Text.Json.Utf8JsonReader.GetGuid()
at System.Text.Json.Serialization.Converters.JsonConverterGuid.Read(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options)
at System.Text.Json.JsonPropertyInfoNullable`2.OnRead(JsonTokenType tokenType, ReadStack& state, Utf8JsonReader& reader)
at System.Text.Json.JsonPropertyInfo.Read(JsonTokenType tokenType, ReadStack& state, Utf8JsonReader& reader)
Я пытался найти его в https://github.com/dotnet/corefx/blob/master/src/System.Text.Json/src/System/Text/Json/Reader/Utf8JsonReader.TryGet.cs#L940, но похоже, что Json Parser не обрабатывает этот случай null
. Как я могу добиться этого, мой второй лучший вариант - отправить пустой Guid 000-00000000-00-000 ... из клиента javascript и проверить его на контроллере web api, но это похоже на взлом.