Exemple #1
0
        /// <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();
        }
Exemple #2
0
 /// <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)));