Ejemplo n.º 1
0
        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));
 }
Ejemplo n.º 3
0
 public override void WriteJson(JsonWriter writer, IReferable <T> value, JsonSerializer serializer)
 {
     serializer.Serialize(writer, value.GetHashCode());
 }
Ejemplo n.º 4
0
 public static string GetName(this IReferable <Parameter> item)
 {
     return(item?.GetObject()?.Name ?? item?.GetRef() ?? "unknown");
 }
Ejemplo n.º 5
0
 public static T ToModelElement <T>(this IReferable referable) where T : class, IReferable
 {
     return(referable as T);
 }
Ejemplo n.º 6
0
 public static T Cast <T>(this IReferable referable) where T : class, IReferable
 {
     return(referable as T);
 }