in src/Microsoft.Azure.WebJobs.Extensions.Dapr/DaprExtensionConfigProvider.cs [230:262]
private static DaprBindingMessage GetDaprBindingMessageFromValueKindObject(JsonElement jsonElement)
{
var propertyBag = jsonElement.ToCaseInsensitiveDictionary();
if (!propertyBag.TryGetValue("data", out JsonElement data))
{
throw new ArgumentException("A 'data' parameter is required for Dapr Binding operations.", nameof(jsonElement));
}
object? dataObj = data.Deserialize<object>();
if (dataObj == null)
{
throw new ArgumentException("Could not deserialize 'data' parameter for Dapr Binding operations.", nameof(jsonElement));
}
DaprBindingMessage message = new DaprBindingMessage(dataObj);
if (propertyBag.TryGetValue("operation", out JsonElement operation))
{
message.Operation = JsonSerializer.Deserialize<string>(operation);
}
if (propertyBag.TryGetValue("metadata", out JsonElement metadata))
{
message.Metadata = JsonSerializer.Deserialize<Dictionary<string, object>>(metadata);
}
if (propertyBag.TryGetValue("bindingname", out JsonElement binding))
{
message.BindingName = JsonSerializer.Deserialize<string>(binding);
}
return message;
}