SGScript.IObjectBase._ReadClassProps C# (CSharp) Method

_ReadClassProps() static private method

static private _ReadClassProps ( Context ctx, Type type, bool needStatic ) : SGSPropInfo>.Dictionary
ctx Context
type System.Type
needStatic bool
return SGSPropInfo>.Dictionary
        static Dictionary<Variable, SGSPropInfo> _ReadClassProps( Context ctx, Type type, bool needStatic )
        {
            Dictionary<Variable, SGSPropInfo> outprops = new Dictionary<Variable, SGSPropInfo>();

            BindingFlags placementFlag = needStatic ? BindingFlags.Static : BindingFlags.Instance;
            FieldInfo[] fields = type.GetFields( BindingFlags.Public | BindingFlags.NonPublic | placementFlag );
            foreach( FieldInfo field in fields )
            {
                SGSPropInfo info = _GetPropFieldInfo( field, field.FieldType );
                if( info != null )
                    outprops.Add( ctx.Var( field.Name ), info );
            }

            PropertyInfo[] properties = type.GetProperties( BindingFlags.Public | BindingFlags.NonPublic | placementFlag );
            foreach( PropertyInfo prop in properties )
            {
                SGSPropInfo info = _GetPropFieldInfo( prop, prop.PropertyType );
                if( info != null )
                    outprops.Add( ctx.Var( prop.Name ), info );
            }

            return outprops;
        }