public override object GetValue(object obj)
        {
            if (this.m_typeCode != 0)
            {
                IPropertyStore propertyStore = ((ReportObject)obj).PropertyStore;
                switch (this.m_typeCode)
                {
                default:
                    return(propertyStore.GetObject(this.m_index));

                case PropertyTypeCode.Boolean:
                    return(propertyStore.GetBoolean(this.m_index));

                case PropertyTypeCode.Integer:
                    return(propertyStore.GetInteger(this.m_index));

                case PropertyTypeCode.Size:
                    return(propertyStore.GetSize(this.m_index));

                case PropertyTypeCode.Enum:
                {
                    int integer = propertyStore.GetInteger(this.m_index);
                    return(Enum.ToObject(base.Type, integer));
                }

                case PropertyTypeCode.ValueType:
                {
                    object obj2 = propertyStore.GetObject(this.m_index);
                    if (obj2 == null)
                    {
                        obj2 = Activator.CreateInstance(base.Type);
                    }
                    return(obj2);
                }
                }
            }
            return(this.m_property.GetValue(obj, null));
        }