/// <summary> /// Reads the JSON representation of the object. /// </summary> /// <param name="reader">The <see cref="T:Newtonsoft.Json.JsonReader" /> to read from.</param> /// <param name="objectType">Type of the object.</param> /// <param name="existingValue">The existing value of object being read.</param> /// <param name="serializer">The calling serializer.</param> /// <returns> /// The object value. /// </returns> public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { JToken jtoken = JToken.Load(reader); object target = null; if (jtoken != null && jtoken.HasValues && jtoken["type"] != null) { var typeValue = jtoken["type"].Value <string>(); var type = new AuditBackendType(typeValue); if (type == AuditBackendType.File) { target = new FileAuditBackend(); } else { if (type == AuditBackendType.Syslog) { target = new SyslogAuditBackend(); } } if (target == null) { target = new CustomAuditBackend(new AuditBackendType(typeValue)); } serializer.Populate(jtoken.CreateReader(), target); } return(target); }
/// <summary> /// Initializes a new instance of the <see cref="CustomAuditBackend"/> class. /// </summary> /// <param name="auditBackendType">Type of the audit backend.</param> public CustomAuditBackend(AuditBackendType auditBackendType) { Type = auditBackendType; }