public override IReferable <T> ReadJson(JsonReader reader, Type objectType, IReferable <T> existingValue, bool hasExistingValue, JsonSerializer serializer) { var item = JObject.Load(reader); if (item["$ref"] != null) { return(new Reference <T> { Ref = item["$ref"].ToString() }); } return(new ReferableDataWrapper <T>(item.ToObject <T>(serializer))); }
/// <summary> /// Serializes a <see cref="IReferable"/> value. /// </summary> /// <param name="value">The <see cref="IReferable"/> value to serialize.</param> /// <returns>The <see cref="JsonValue"/>.</returns> protected virtual JsonValue SerializeReferable(IReferable value) { if (!value.HasValue) { return(null); } if (value.IsReference) { var reference = Serialize(value.Reference); return(new JsonObject() { [PropertyConstants.Reference] = reference }); } return(SerializeUnknown(value.Value)); }
public override void WriteJson(JsonWriter writer, IReferable <T> value, JsonSerializer serializer) { serializer.Serialize(writer, value.GetHashCode()); }
public static string GetName(this IReferable <Parameter> item) { return(item?.GetObject()?.Name ?? item?.GetRef() ?? "unknown"); }
public static T ToModelElement <T>(this IReferable referable) where T : class, IReferable { return(referable as T); }
public static T Cast <T>(this IReferable referable) where T : class, IReferable { return(referable as T); }