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;
}