public void Render(CustomLogAttribute customLogAttribute) { if (customLogAttribute == null) { throw new ArgumentNullException(nameof(customLogAttribute)); } if (customLogAttribute is CustomLogAttributeProperty customLogAttributeProperty) { _writer.WriteItem(new KeyValuePair <string, object>(customLogAttributeProperty.Key, customLogAttributeProperty.Value)); } if (customLogAttribute is CustomLogAttributeObject customLogAttributeObject) { _writer.WriteStartObject(customLogAttributeObject.Key); foreach (var attribute in customLogAttributeObject.Attributes) { Render(attribute); } _writer.WriteEndObject(); } }