public virtual ObjectModelObject ConvertToObject() { var classAttr = GetObjectModelClassAttribute(); if (classAttr == null) { return(null); } var answer = new ObjectModelObject(classAttr.Name); foreach (var propInfo in this.GetType().GetProperties()) { var propAttr = GetObjectModelPropertyAttribute(propInfo); if (propAttr != null) { object propVal = propInfo.GetValue(this); if (!object.Equals(propAttr.DefaultValue, propVal)) { IObjectModelValue value = CreateObject(propVal); if (value != null) { answer.Add(propAttr.Name, value); } } } else { var bindingPropAttr = GetObjectModelBindingPropertyAttribute(propInfo); if (bindingPropAttr != null) { string bindingName = propInfo.GetValue(this) as string; if (bindingName != null) { answer.AddBinding(bindingPropAttr, bindingName); } } } } return(answer); }
public void Add(IObjectModelValue value) { Values.Add(value); }