public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
if (value is int || value is decimal || value is float)
{
writer.WriteStartObject();
writer.WritePropertyName("$");
writer.WriteValue(GetString(value));
writer.WriteEndObject();
}
else
{
var value1 = value as ISurrogated;
if (value1 != null)
{
var surrogated = value1;
var surrogate = surrogated.ToSurrogate(_parent.system);
serializer.Serialize(writer, surrogate);
}
else
{
serializer.Serialize(writer, value);
}
}
}