private object BindObject(DObject obj, Type targetType) { object instance = Activator.CreateInstance(targetType);// no ctor parameters FieldInfo[] fi = targetType.GetFields(BindingFlags.Public | BindingFlags.Instance); object value; foreach (var field in fi) { if (SetSpecifiedField(instance, field)) { continue; } value = obj.GetProperty(field.Name, null, true); if (value != null) { field.SetValue(instance, Bind(value, field.FieldType)); } } lastPrimitive = false; return(instance); }
public static object GetObjectProperty(DObject/*!*/ obj, string name, DTypeDesc caller, bool quiet) { Debug.Assert(obj != null && name != null); object property = obj.GetProperty(name, caller, quiet); return PhpVariable.Dereference(property); }
private object BindObject(DObject obj, Type targetType) { object instance = Activator.CreateInstance(targetType);// no ctor parameters FieldInfo[] fi = targetType.GetFields(BindingFlags.Public | BindingFlags.Instance); object value; foreach (var field in fi) { if (SetSpecifiedField(instance, field)) continue; value = obj.GetProperty(field.Name, null, true); if (value != null) { field.SetValue(instance, Bind(value, field.FieldType)); } } lastPrimitive = false; return instance; }