public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { Require.NotNull(writer, nameof(writer)); Require.NotNull(value, nameof(value)); Require.NotNull(serializer, nameof(serializer)); var rawValue = AbstractEntityIdentity.ExtractRawValue(value); serializer.Serialize(writer, rawValue); }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { Require.NotNull(reader, nameof(reader)); Require.NotNull(objectType, nameof(objectType)); Require.NotNull(serializer, nameof(serializer)); var rawValueType = AbstractEntityIdentity.GetRawType(objectType); var rawValue = serializer.Deserialize(reader, rawValueType); return(AbstractEntityIdentity.CreateFromRawValue(rawValue, objectType)); }
public override bool CanConvert(Type objectType) { Require.NotNull(objectType, nameof(objectType)); return(AbstractEntityIdentity.IsValidType(objectType)); }