public override PropertyInfo[] GetProperties (BindingFlags bf)
{
if (!IsCompilerContext)
throw new NotSupportedException ();
ArrayList l = new ArrayList ();
Type current_type = this;
do {
MonoGenericClass gi = current_type as MonoGenericClass;
if (gi != null)
l.AddRange (gi.GetPropertiesInternal (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;
}