private void PickUp(object o, string prefix, string label, DCInfo info) { DCPartInfo part = CreateDCPart(info, label); foreach (PropertyInfo prop in o.GetType().GetProperties()) { if (Attribute.IsDefined(prop, typeof(IgnoreAttribute))) { IgnoreAttribute attr = GetAttribute <IgnoreAttribute>(prop); if (attr.Fields == null || attr.Fields.Length == 0) { continue; } } string name = !String.IsNullOrEmpty(prefix) ? String.Format("{0}-{1}", prefix, prop.Name) : prop.Name; if (Attribute.IsDefined(prop, typeof(ChildrenAttribute))) { DescAttribute desc = GetAttribute <DescAttribute>(prop); PickUp(prop.GetValue(o, null), name, desc != null ? desc.Title : String.Empty, info); } else if (Attribute.IsDefined(prop, typeof(OptionAttribute))) { part.Params.Add(GetDCParam(prop, name)); } } SortParam(part); }
private DataControlParameter GetDCParam(PropertyInfo prop, string name) { DataControlParameter param = new DataControlParameter(); param.Name = name; param.Required = Attribute.IsDefined(prop, typeof(RequiredAttribute)); DescAttribute desc = GetAttribute <DescAttribute>(prop); if (desc != null) { param.Title = desc.Title; param.Description = desc.Description; OptionAttribute option = GetAttribute <OptionAttribute>(prop); param.Type = option.Type; param.Maximum = option.Maxnum.ToString(); param.Minium = option.Minnum.ToString(); param.Length = option.Length; param.Data = option.Data; } WeightAttribute weight = GetAttribute <WeightAttribute>(prop); if (weight != null) { param.Weight = weight != null ? weight.Weight : 0; } DefaultAttribute defaultVal = GetAttribute <DefaultAttribute>(prop); if (defaultVal != null) { param.DefaultValue = defaultVal.Value.ToString(); } return(param); }