private int ByType(Newtonsoft.Json.Serialization.JsonProperty property)
            {
                if (typeof(string).Equals(property.PropertyType))
                {
                    return(0);
                }

                if (typeof(System.Collections.IEnumerable).IsAssignableFrom(property.PropertyType))
                {
                    return(1);
                }

                return(0);
            }
        protected override Newtonsoft.Json.Serialization.JsonProperty CreateProperty(System.Reflection.MemberInfo member, MemberSerialization memberSerialization)
        {
            Newtonsoft.Json.Serialization.JsonProperty prop = base.CreateProperty(member, memberSerialization);

            if (!prop.Writable)
            {
                System.Reflection.PropertyInfo property = member as System.Reflection.PropertyInfo;
                if (property != null)
                {
                    bool hasPrivateSetter = property.GetSetMethod(true) != null;
                    prop.Writable = hasPrivateSetter;
                }
            }

            return(prop);
        }
예제 #3
0
    protected override IList <Newtonsoft.Json.Serialization.JsonProperty> CreateProperties(Type type, Newtonsoft.Json.MemberSerialization memberSerialization)
    {
        var properties = type.GetMethods()
                         .Where(m => m.Name.Length > 3)
                         .GroupBy(m => m.Name.Substring(3))
                         .Where(g => g.Count() == 2 && g.Any(x => x.Name == "set" + g.Key) && g.Any(x => x.Name == "get" + g.Key))
                         .ToList();
        var ret = properties.Select(prop =>
        {
            var jProp           = new Newtonsoft.Json.Serialization.JsonProperty();
            jProp.PropertyName  = prop.Key;
            jProp.PropertyType  = prop.First(m => m.Name.StartsWith("get")).ReturnType;
            jProp.ValueProvider = new MyValueProvider(prop.ToList());
            jProp.Readable      = jProp.Writable = true;
            return(jProp);
        })
                  .ToList();

        return(ret);
    }
예제 #4
0
 protected virtual bool TryGetJsonProperty(object target, Newtonsoft.Json.Serialization.IContractResolver contractResolver, string segment, out Newtonsoft.Json.Serialization.JsonProperty jsonProperty)
 {
     throw null;
 }
예제 #5
0
 public JsonPatchProperty(Newtonsoft.Json.Serialization.JsonProperty property, object parent)
 {
 }