/// <summary>Writes a specified value as JSON.</summary> /// <param name="writer">The writer to write to.</param> /// <param name="value">The value to convert to JSON.</param> /// <param name="options">An object that specifies serialization options to use.</param> public override void Write(Utf8JsonWriter writer, TType value, JsonSerializerOptions options) { _ = writer.MustNotBeNull(nameof(writer)); _ = value.MustNotBeNull(nameof(value)); writer.WriteStartObject(); writer.WritePropertyName("$type"); var typeName = $"{value.GetType().FullName}, {value.GetType().Assembly.GetName().Name}"; writer.WriteStringValue(typeName); writer.WriteStartObject("Data"); using var doc = JsonDocument.Parse(value.ToJson()); foreach (var property in doc.RootElement.EnumerateObject()) { property.WriteTo(writer); } writer.WriteEndObject(); writer.WriteEndObject(); }
/// <summary>Writes a specified value as JSON.</summary> /// <param name="writer">The writer to write to.</param> /// <param name="value">The value to convert to JSON.</param> /// <param name="options">An object that specifies serialization options to use.</param> public override void Write(Utf8JsonWriter writer, string value, JsonSerializerOptions options) => writer.MustNotBeNull(nameof(writer)).WriteStringValue(Convert.ToBase64String(this.encrypt(value)));