Esempio n. 1
0
        public override PropertyInfo[] GetProperties(BindingFlags bf)
        {
            ArrayList l = new ArrayList();

            Type current_type = this;

            do
            {
                MonoGenericClass gi = current_type as MonoGenericClass;
                if (gi != null)
                {
                    l.AddRange(gi.GetProperties_impl(bf, this));
                }
                else if (current_type is TypeBuilder)
                {
                    l.AddRange(current_type.GetProperties(bf));
                }
                else
                {
                    MonoType mt = (MonoType)current_type;
                    l.AddRange(mt.GetPropertiesByName(null, bf, false, this));
                    break;
                }

                if ((bf & BindingFlags.DeclaredOnly) != 0)
                {
                    break;
                }
                current_type = current_type.BaseType;
            } while (current_type != null);

            PropertyInfo[] result = new PropertyInfo [l.Count];
            l.CopyTo(result);
            return(result);
        }