Ejemplo n.º 1
0
        private static bool TestAccessibility(MethodBase member, Newtonsoft.Json.Utilities.BindingFlags bindingFlags)
        {
            bool visibility = (member.IsPublic && bindingFlags.HasFlag(Newtonsoft.Json.Utilities.BindingFlags.Public)) ||
                              (!member.IsPublic && bindingFlags.HasFlag(Newtonsoft.Json.Utilities.BindingFlags.NonPublic));

            bool instance = (member.IsStatic && bindingFlags.HasFlag(Newtonsoft.Json.Utilities.BindingFlags.Static)) ||
                            (!member.IsStatic && bindingFlags.HasFlag(Newtonsoft.Json.Utilities.BindingFlags.Instance));

            return(visibility && instance);
        }
Ejemplo n.º 2
0
        public static IEnumerable <FieldInfo> GetFields(this Type type, Newtonsoft.Json.Utilities.BindingFlags bindingFlags)
        {
            IList <FieldInfo> fields = (bindingFlags.HasFlag(Newtonsoft.Json.Utilities.BindingFlags.DeclaredOnly))
                          ? type.GetTypeInfo().DeclaredFields.ToList()
                          : type.GetTypeInfo().GetFieldsRecursive();

            return(fields.Where(f => TestAccessibility(f, bindingFlags)).ToList());
        }
Ejemplo n.º 3
0
        public static IEnumerable <PropertyInfo> GetProperties(this Type type, Newtonsoft.Json.Utilities.BindingFlags bindingFlags)
        {
            IList <PropertyInfo> properties = (bindingFlags.HasFlag(Newtonsoft.Json.Utilities.BindingFlags.DeclaredOnly))
                          ? type.GetTypeInfo().DeclaredProperties.ToList()
                          : type.GetTypeInfo().GetPropertiesRecursive();

            return(properties.Where(p => TestAccessibility(p, bindingFlags)));
        }