public virtual void SetDefaultValue() { Type sectionType = this.GetType(); IICConfigSectionAttribute sectionAttr = AttributeHelper.GetAttribute <IICConfigSectionAttribute>(sectionType); foreach (FieldInfo field in sectionType.GetFields()) { IICConfigFieldAttribute fieldAttr = AttributeHelper.TryGetAttribute <IICConfigFieldAttribute>(field); if (fieldAttr != null && fieldAttr.DefaultValue != null) { ObjectHelper.SetValue(field, this, fieldAttr.DefaultValue); continue; } IICConfigItemAttribute itemAttr = AttributeHelper.TryGetAttribute <IICConfigItemAttribute>(field); if (itemAttr != null) { IICConfigItem item = (IICConfigItem)Activator.CreateInstance(field.FieldType); item.SetDefaultValue(); field.SetValue(this, item); continue; } IICConfigItemCollectionAttribute colletionAttr = AttributeHelper.TryGetAttribute <IICConfigItemCollectionAttribute>(field); if (colletionAttr != null) { object collection = Activator.CreateInstance(field.FieldType); field.SetValue(this, collection); continue; } } }
public virtual void SetDefaultValue() { Type itemType = this.GetType(); foreach (FieldInfo field in itemType.GetFields()) { IICConfigFieldAttribute fieldAttr = AttributeHelper.TryGetAttribute <IICConfigFieldAttribute>(field); if (fieldAttr != null) { if (fieldAttr.DefaultValue != null) { try { field.SetValue(this, fieldAttr.DefaultValue); } catch (Exception ex) { throw new ConfigurationException( string.Format("<{0}.{1}: {2}> DefaultValue Convert Failed: {3}", itemType.Name, field.Name, field.FieldType.Name, fieldAttr.DefaultValue), ex); } } } } }