Exemple #1
0
        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;
                }
            }
        }
Exemple #2
0
        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);
                        }
                    }
                }
            }
        }