コード例 #1
0
        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);
        }
コード例 #2
0
        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));
        }