Exemplo n.º 1
0
        protected override JsonProperty CreateProperty(MemberInfo member, Newtonsoft.Json.MemberSerialization memberSerialization)
        {
            JsonProperty property = base.CreateProperty(member, memberSerialization);

            if (_rootTypes.Contains(property.PropertyType))
            {
                property.Converter       = _referenceConverter;
                property.MemberConverter = _referenceConverter;
            }
            else
            {
                if (property.PropertyType.IsGenericType)
                {
                    foreach (Type @interface in property.PropertyType.GetInterfaces())
                    {
                        if (@interface.IsGenericType)
                        {
                            if (@interface.GetGenericTypeDefinition() == typeof(ICollection <>))
                            {
                                if (_rootTypes.Contains(@interface.GetGenericArguments()[0]))
                                {
                                    property.Ignored = true;
                                }
                            }
                        }
                    }
                }
            }
            return(property);
        }
        CreateProperties
        (
            System.Type t,
            Newtonsoft.Json.MemberSerialization ms
        )
        {
            if (t.Name.Contains("ArtifactSerializationMetadata"))
            {
            }
            IList <Newtonsoft.Json.Serialization.JsonProperty> properties = null;

            properties = base.CreateProperties(t, ms);

            var p2 = properties.Where(p => properties_to_serialize.Contains(p.PropertyName));

            var p3 = p2.ToList();

            foreach (Newtonsoft.Json.Serialization.JsonProperty prop in properties)
            {
                prop.Order = properties_to_serialize.IndexOf(prop.PropertyName) + 1;
            }

            var list_ordered = properties.OrderBy(p => p.Order).ToList();


            return(list_ordered);
        }
Exemplo n.º 3
0
        protected override IList <JsonProperty> CreateProperties(Type type, Newtonsoft.Json.MemberSerialization memberSerialization)
        {
            var properties = base.CreateProperties(type, memberSerialization);

            if (properties.Count > 0)
            {
                foreach (var property in type.GetProperties())
                {
                    var sensitiveDataAttributes = property.GetCustomAttributes(typeof(SensitiveDataAttribute), false);
                    if (!sensitiveDataAttributes.Any())
                    {
                        continue;
                    }

                    var mappedProperty = properties.FirstOrDefault(p => p.UnderlyingName == property.Name);
                    if (mappedProperty != null)
                    {
                        var attribute = (sensitiveDataAttributes[0] as SensitiveDataAttribute);
                        if (attribute.Direction == Direction.Output)
                        {
                            properties.Add(GetJsonProperty(type, mappedProperty, attribute));
                        }
                        else
                        {
                            mappedProperty.ValueProvider = new SensitiveDataValueProvider(property.Name, SaltGenerator);
                        }
                    }
                }
            }
            return(properties);
        }
        protected override IList <JsonProperty> CreateProperties(Type type, Newtonsoft.Json.MemberSerialization memberSerialization)
        {
            var properties = base.CreateProperties(type, memberSerialization);

            if (_filterToFields != null && IsSourceType(type))
            {
                properties = properties.Where(x => _filterToFields.Contains(x.PropertyName)).ToList();
            }
            return(properties);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Creates properties for the given Newtonsoft.Json.Serialization.JsonContract.
        /// </summary>
        /// <param name="type">The type to create properties for.</param>
        /// <param name="memberSerialization">The member serialization mode for the type.</param>
        /// <returns>Properties for the given Newtonsoft.Json.Serialization.JsonContract.</returns>
        protected override IList <JsonProperty> CreateProperties(Type type, Newtonsoft.Json.MemberSerialization memberSerialization)
        {
            IList <JsonProperty> properties    = base.CreateProperties(type, memberSerialization);
            List <string>        ignoreMembers = type.GetProperties().Where(x => x.GetCustomAttributes(typeof(EfIgnoreDbLogAttribute), true).Any()).Select(x => x.Name).ToList();

            ignoreMembers.AddRange(type.GetProperties().Where(p => p.GetGetMethod().IsVirtual).Select(x => x.Name).ToList());
            IList <JsonProperty> prop = properties.Where(p => !ignoreMembers.Contains(p.PropertyName)).ToList();

            return(prop);
        }
        /// <summary>
        /// 重密属性全部改成小写
        /// </summary>
        /// <param name="type"></param>
        /// <param name="memberSerialization"></param>
        /// <returns></returns>
        protected override IList <JsonProperty> CreateProperties(Type type, Newtonsoft.Json.MemberSerialization memberSerialization)
        {
            var properties = base.CreateProperties(type, memberSerialization);

            foreach (var pro in properties)
            {
                pro.PropertyName = pro.PropertyName.ToLower();
            }
            return(properties);
        }
Exemplo n.º 7
0
        CreateProperties(Type type, Newtonsoft.Json.MemberSerialization memberSerialization)
        {
            var props = type
                        .GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)
                        .Select(p => base.CreateProperty(p, memberSerialization))
                        .Union(type.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)
                               .Select(f => base.CreateProperty(f, memberSerialization)))
                        .ToList();

            props.ForEach(p => { p.Writable = true; p.Readable = true; });
            return(props);
        }
        protected override JsonProperty CreateProperty(MemberInfo member, Newtonsoft.Json.MemberSerialization memberSerialization)
        {
            var prop = base.CreateProperty(member, memberSerialization);

            if (!prop.Writable)
            {
                var property         = member as PropertyInfo;
                var hasPrivateSetter = property?.GetSetMethod(true) != null;
                prop.Writable = hasPrivateSetter;
            }
            return(prop);
        }
        protected override IList <JsonProperty> CreateProperties(Type type, Newtonsoft.Json.MemberSerialization memberSerialization)
        {
            var properties = base.CreateProperties(type, memberSerialization);

            foreach (var jsonProperty in properties)
            {
                //set obfuscated name
                jsonProperty.PropertyName = GetObfuscatedName(properties.IndexOf(jsonProperty));
            }

            return(properties);
        }
Exemplo n.º 10
0
        protected override IList <JsonProperty> CreateProperties(Type type, Newtonsoft.Json.MemberSerialization memberSerialization)
        {
            var properties = base.CreateProperties(type, memberSerialization);

            foreach (var property in properties)
            {
                property.PropertyName = ConvertPropertyName(property.PropertyName);
            }

            // only seria
            return(properties);
        }
Exemplo n.º 11
0
            protected override IList <JsonProperty> CreateProperties(Type type, Newtonsoft.Json.MemberSerialization memberSerialization)
            {
                IList <JsonProperty> Properties = base.CreateProperties(type, memberSerialization);

                foreach (var item in Properties)
                {
                    if (item.DeclaringType.GetProperty(item.PropertyName).GetMethod.Attributes.HasFlag(MethodAttributes.Virtual))
                    {
                        item.Ignored = true;
                    }
                }
                return(Properties);
            }
Exemplo n.º 12
0
    protected override IList <JsonProperty> CreateProperties(Type type,
                                                             Newtonsoft.Json.MemberSerialization memberSerialization)
    {
        IList <JsonProperty> props = base.CreateProperties(type, memberSerialization);

        if (type == typeof(Your_Class))
        {
            JsonProperty prop =
                props.Where(p => p.PropertyName == "Your_Property_Name")
                .FirstOrDefault();
            if (prop != null)
            {
                prop.Converter =
                    new IsoDateTimeConverter {
                    DateTimeFormat = "dd-MM-yyyy"
                };
            }
        }
        return(props);
    }
        protected override JsonProperty CreateProperty(MemberInfo member, Newtonsoft.Json.MemberSerialization memberSerialization)
        {
            var property = base.CreateProperty(member, memberSerialization);

            if (property.DeclaringType == typeof(BaseDto) || property.DeclaringType.GetTypeInfo().BaseType == typeof(BaseDto) ||
                property.DeclaringType.GetTypeInfo().BaseType.GetTypeInfo().BaseType == typeof(BaseDto))
            {
                if (property.PropertyName == "SerializableProperties")
                {
                    property.ShouldSerialize = instance => { return(false); };
                }
                else
                {
                    property.ShouldSerialize = instance =>
                    {
                        var p = (BaseDto)instance;
                        return(p.SerializableProperties.Contains(property.PropertyName));
                    };
                }
            }
            return(property);
        }
Exemplo n.º 14
0
        protected override IList <JsonProperty> CreateProperties(Type type, Newtonsoft.Json.MemberSerialization memberSerialization)
        {
            IList <JsonProperty> properties = base.CreateProperties(type, memberSerialization);

            return(properties.Where(p => _propertiesToSerialize.Contains(p.PropertyName)).ToList());
        }
Exemplo n.º 15
0
 public JsonObjectAttribute(Newtonsoft.Json.MemberSerialization memberSerialization)
 {
     this.MemberSerialization = memberSerialization;
 }
 protected override System.Collections.Generic.IList<Newtonsoft.Json.Serialization.JsonProperty> CreateProperties(System.Type type, Newtonsoft.Json.MemberSerialization memberSerialization)
 {
     var @base = base.CreateProperties(type, memberSerialization);
     var ordered = @base
         .OrderBy(p => p.Order ?? int.MaxValue)
         .ThenBy(p => p.PropertyName)
         .ToList();
     return ordered;
 }
Exemplo n.º 17
0
        protected override JsonProperty CreateProperty(System.Reflection.MemberInfo member, Newtonsoft.Json.MemberSerialization memberSerialization)
        {
            var ret = base.CreateProperty(member, memberSerialization);

            ret.PropertyName = ret.UnderlyingName;
            return(ret);
        }
Exemplo n.º 18
0
        protected override JsonProperty CreateProperty(System.Reflection.MemberInfo member, Newtonsoft.Json.MemberSerialization memberSerialization)
        {
            var property = base.CreateProperty(member, memberSerialization);

            property.ShouldSerialize = instance => serializableProperties.Contains(member.Name.ToLower());
            return(property);
        }
 protected override IList <JsonProperty> CreateProperties(Type type, Newtonsoft.Json.MemberSerialization memberSerialization)
 {
     return(base.CreateProperties(type, memberSerialization).OrderBy(p => p.PropertyName).ToList());
 }
Exemplo n.º 20
0
        /// <summary>
        /// Property creation
        /// </summary>
        /// <param name="member"></param>
        /// <param name="memberSerialization"></param>
        /// <returns></returns>
        protected override JsonProperty CreateProperty(System.Reflection.MemberInfo member, Newtonsoft.Json.MemberSerialization memberSerialization)
        {
            JsonProperty result     = base.CreateProperty(member, memberSerialization);
            string       mappedName = null;

            if (_fieldMapping != null)
            {
                _fieldMapping.TryGetValue(
                    (member.DeclaringType != null ? (member.DeclaringType.Name + ".") : "") + member.Name,
                    out mappedName);
            }
            result.PropertyName = mappedName ?? result.PropertyName.Substring(0, 1).ToLower() + result.PropertyName.Substring(1);
            return(result);
        }
Exemplo n.º 21
0
 public JsonObjectAttribute(Newtonsoft.Json.MemberSerialization memberSerialization)
 {
     Class6.yDnXvgqzyB5jw();
     base();
     this.MemberSerialization = memberSerialization;
 }
Exemplo n.º 22
0
        //protected override JsonContract CreateContract(Type objectType)
        //{
        //    JsonContract contract = base.CreateContract(objectType);

        //    // this will only be called once and then cached
        //    if (objectType.IsValueType || objectType.IsEnum || objectType == typeof(string))
        //        return contract;
        //    if (objectType.GetInterface("IEnumerable") != null)
        //        throw new ArgumentException("IEnumerable should not serialize!");

        //    contract.Converter = new EntityIdConverter();

        //    return contract;
        //}
        protected override JsonProperty CreateProperty(System.Reflection.MemberInfo member, Newtonsoft.Json.MemberSerialization memberSerialization)
        {
            JsonProperty property = base.CreateProperty(member, memberSerialization);

            var propertyType = property.PropertyType;

            if (propertyType.IsValueType || propertyType == typeof(string))
            {
            }
            else if (propertyType.IsEnum)
            {
                //property.Converter = new Newtonsoft.Json.Converters.StringEnumConverter();
            }
            else if (propertyType.GetInterface("IEnumerable") != null)
            {
                property.ShouldSerialize =
                    instance =>
                {
                    return(false);
                };
            }
            else
            {
                property.Converter = new EntityIdConverter();
            }
            return(property);
        }
Exemplo n.º 23
0
    protected override IList <Newtonsoft.Json.Serialization.JsonProperty> CreateProperties(Type type, Newtonsoft.Json.MemberSerialization memberSerialization)
    {
        //Find methods.  setXXX getXXX
        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();
        //Create a JsonProperty for each set/getXXX pair
        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);
    }
 protected override System.Collections.Generic.IList <Newtonsoft.Json.Serialization.JsonProperty> CreateProperties(System.Type type, Newtonsoft.Json.MemberSerialization memberSerialization)
 {
     return(base
            .CreateProperties(type, memberSerialization)
            .OrderBy(ByType)
            .ThenBy(p => p.PropertyName)
            .ToList());
 }
        protected override JsonProperty CreateProperty(System.Reflection.MemberInfo member, Newtonsoft.Json.MemberSerialization memberSerialization)
        {
            var property = base.CreateProperty(member, memberSerialization);

            if (_filterToFields != null && member.DeclaringType != null && IsSourceType(member.DeclaringType))
            {
                if (!_filterToFields.Contains(member.Name))
                {
                    return(null);
                }
            }
            return(property);
        }
Exemplo n.º 26
0
        protected override JsonProperty CreateProperty(System.Reflection.MemberInfo member, Newtonsoft.Json.MemberSerialization memberSerialization)
        {
            var property = base.CreateProperty(member, memberSerialization);

            if (property.DeclaringType == typeof(BaseDTO) || property.DeclaringType.BaseType == typeof(BaseDTO))
            {
                if (property.PropertyName == "serializableProperties")
                {
                    property.ShouldSerialize = instance => { return(false); };
                }
                else
                {
                    var temp = property.ShouldSerialize;
                    property.ShouldSerialize = instance =>
                    {
                        var p = (BaseDTO)instance;
                        return(p.SerializableProperties.Any(x => x.Key == property.PropertyName));
                    };
                }
            }
            return(property);
        }
 protected override IList <JsonProperty> CreateProperties(Type type,
                                                          Newtonsoft.Json.MemberSerialization memberSerialization)
 {
     //filter the properties and return back the final list
 }
Exemplo n.º 28
0
        /// <summary>
        /// 创建接送 JsonProperty
        /// </summary>
        /// <param name="member"></param>
        /// <param name="memberSerialization"></param>
        /// <returns></returns>
        protected override JsonProperty CreateProperty(System.Reflection.MemberInfo member, Newtonsoft.Json.MemberSerialization memberSerialization)
        {
            var jsp = base.CreateProperty(member, memberSerialization);

            //是否使用JsonProperty的名称,不适用的话直接使用属性的名称
            if (!isJsonProperty)
            {
                jsp.PropertyName = member.Name;
            }
            if (ignoreList != null && ignoreList.Count > 0)
            {
                string fieldName = member.DeclaringType + "." + member.Name;
                jsp.Ignored = ignoreList.Contains(fieldName);
            }
            return(jsp);
        }
Exemplo n.º 29
0
        protected override JsonProperty CreateProperty(System.Reflection.MemberInfo member, Newtonsoft.Json.MemberSerialization memberSerialization)
        {
            JsonProperty jp = base.CreateProperty(member, memberSerialization);

            if (GetAttribute <JsonIgnoreAttribute>(member) != null)
            {
                jp.Ignored = true;
            }
            else
            {
                JsonPropertyAttribute jsonProp = GetAttribute <JsonPropertyAttribute>(member);
                if (jsonProp != null)
                {
                    if (!String.IsNullOrEmpty(jsonProp.PropertyName))
                    {
                        jp.PropertyName = jsonProp.PropertyName;
                    }
                }
                else
                {
                    if (member.MemberType == MemberTypes.Property)
                    {
                        PropertyInfo pi = (PropertyInfo)member;
                        //仅可写及公开
                        jp.Ignored = pi.GetGetMethod() == null || pi.GetSetMethod() == null;
                    }
                    else if (member.MemberType == MemberTypes.Field)
                    {
                        FieldInfo fi = (FieldInfo)member;
                        //如果是匿名类型,就不忽略 add by skypan 2012年4月10日12:19:13
                        if (fi.DeclaringType.Name.IndexOf("<>f__AnonymousType") > -1)
                        {
                            jp.Ignored      = false;
                            jp.PropertyName = fi.Name.Substring(1, fi.Name.IndexOf(">") - 1);
                        }
                        else
                        {
                            jp.Ignored = !fi.IsPublic;
                        }
                    }
                }
            }
            return(jp);
        }
Exemplo n.º 30
0
        /*public ShouldSerializeContractResolver() : base()
         * {
         *  NamingStrategy = new CamelCaseNamingStrategy();
         *  // {
         *  //     ProcessDictionaryKeys = true,
         *  //     OverrideSpecifiedNames = true
         *  // };
         * }*/



        protected override JsonProperty CreateProperty(System.Reflection.MemberInfo member, Newtonsoft.Json.MemberSerialization memberSerialization)
        {
            var property = base.CreateProperty(member, memberSerialization);

            if (property.DeclaringType == typeof(BaseEntity) || property.DeclaringType.BaseType == typeof(BaseEntity))
            {
                if (property.PropertyName == "serializableProperties")
                {
                    property.ShouldSerialize = instance => { return(false); };
                }
                else
                {
                    property.ShouldSerialize = instance =>
                    {
                        var p = (User)instance;
                        return(p.serializableProperties.Contains(property.PropertyName));
                    };
                }
            }
            return(property);
        }