// callback implementation helpers public Variable sgsGetPropertyByName(Variable key, bool isprop) { SGSClassInfo cinfo = GetClassInfo(); SGSPropInfo propinfo; if (!cinfo.props.TryGetValue(key, out propinfo) || !propinfo.canRead) { if (backingStore != null) { return(backingStore.GetSubItem(key, isprop)); } return(null); } object obj; if (propinfo.info is FieldInfo) { obj = (propinfo.info as FieldInfo).GetValue(this); } else // PropertyInfo { obj = (propinfo.info as PropertyInfo).GetValue(this, null); } return(_sgsEngine.ObjVar(obj)); }