private void sendState(System.Collections.Generic.Dictionary <string, object> properties) { if (coreWebView2 == null) { return; } using (var stream = new System.IO.MemoryStream()) { using (var writer = new System.Text.Json.Utf8JsonWriter(stream)) { writer.WriteStartObject(); writer.WriteString("type", "state"); writer.WriteStartObject("state"); foreach (var pair in properties) { if (pair.Value == null) { writer.WriteNull(pair.Key); } else if (pair.Value is double) { writer.WriteNumber(pair.Key, (double)pair.Value); } else if (pair.Value is string) { writer.WriteString(pair.Key, (string)pair.Value); } else { throw new System.ArgumentException("Unsupported type for property '" + pair.Key + "'."); } } writer.WriteEndObject(); writer.WriteEndObject(); } string json = System.Text.Encoding.UTF8.GetString(stream.ToArray()); coreWebView2.PostWebMessageAsJson(json); } }