private JObject SerializeValueType(HypermediaType type) { var jObject = JObject.FromObject(type, Serializer); jObject.Add("links", JArray.FromObject(_resolver.Resolve(type.Links), Serializer)); jObject.Add("errors", JArray.FromObject(type.Errors, Serializer)); return(jObject); }
private JObject GetProperty(PropertyInfo property, object instance, HypermediaType hypermediaInstance) { var value = instance != null?property.GetValue(instance) : null; if (!property.PropertyType.IsValueType && property.PropertyType != typeof(string)) { return(CreateObject(property.PropertyType, property.GetCustomAttributes(true).Cast <Attribute>().ToArray(), value)); } HypermediaType type; if (!hypermediaInstance.Properties.TryGetValue(property.Name, out type)) { type = hypermediaInstance.ConfigureProperty(property, () => value); } return(SerializeValueType(type)); }