/// <summary>
        /// Fill the section with the supplied properties
        /// </summary>
        /// <param name="properties"></param>
        public void Fill(Dictionary <string, string> properties)
        {
            Type iniSectionType = GetType();

            // Iterate over the members and create IniValueContainers
            foreach (FieldInfo fieldInfo in iniSectionType.GetFields())
            {
                if (Attribute.IsDefined(fieldInfo, typeof(IniPropertyAttribute)))
                {
                    IniPropertyAttribute iniPropertyAttribute = (IniPropertyAttribute)fieldInfo.GetCustomAttributes(typeof(IniPropertyAttribute), false)[0];
                    if (!Values.ContainsKey(iniPropertyAttribute.Name))
                    {
                        Values.Add(iniPropertyAttribute.Name, new IniValue(this, fieldInfo, iniPropertyAttribute));
                    }
                }
            }

            foreach (PropertyInfo propertyInfo in iniSectionType.GetProperties())
            {
                if (Attribute.IsDefined(propertyInfo, typeof(IniPropertyAttribute)))
                {
                    if (!Values.ContainsKey(propertyInfo.Name))
                    {
                        IniPropertyAttribute iniPropertyAttribute = (IniPropertyAttribute)propertyInfo.GetCustomAttributes(typeof(IniPropertyAttribute), false)[0];
                        Values.Add(iniPropertyAttribute.Name, new IniValue(this, propertyInfo, iniPropertyAttribute));
                    }
                }
            }

            foreach (string fieldName in Values.Keys)
            {
                IniValue iniValue = Values[fieldName];
                try
                {
                    iniValue.SetValueFromProperties(properties);
                    if (iniValue.Attributes.Encrypted)
                    {
                        string stringValue = iniValue.Value as string;
                        if (stringValue != null && stringValue.Length > 2)
                        {
                            iniValue.Value = stringValue.Decrypt();
                        }
                    }
                }
                catch (Exception ex)
                {
                    LOG.Error(ex);
                }
            }
            AfterLoad();
        }
Example #2
0
 public IniValue(IniSection containingIniSection, FieldInfo fieldInfo, IniPropertyAttribute iniPropertyAttribute)
 {
     _containingIniSection = containingIniSection;
     _fieldInfo            = fieldInfo;
     _attributes           = iniPropertyAttribute;
 }
Example #3
0
 public IniValue(IniSection containingIniSection, PropertyInfo propertyInfo, IniPropertyAttribute iniPropertyAttribute)
 {
     _containingIniSection = containingIniSection;
     _propertyInfo         = propertyInfo;
     _attributes           = iniPropertyAttribute;
 }
 public IniValue(IniSection containingIniSection, FieldInfo fieldInfo, IniPropertyAttribute iniPropertyAttribute)
 {
     this.containingIniSection = containingIniSection;
     this.fieldInfo            = fieldInfo;
     this.attributes           = iniPropertyAttribute;
 }
 public IniValue(IniSection containingIniSection, PropertyInfo propertyInfo, IniPropertyAttribute iniPropertyAttribute)
 {
     this.containingIniSection = containingIniSection;
     this.propertyInfo         = propertyInfo;
     this.attributes           = iniPropertyAttribute;
 }
Example #6
0
 public IniValue(IniSection containingIniSection, FieldInfo fieldInfo, IniPropertyAttribute iniPropertyAttribute)
 {
     this.containingIniSection = containingIniSection;
     this.fieldInfo = fieldInfo;
     attributes = iniPropertyAttribute;
 }
Example #7
0
 public IniValue(IniSection containingIniSection, PropertyInfo propertyInfo, IniPropertyAttribute iniPropertyAttribute)
 {
     this.containingIniSection = containingIniSection;
     this.propertyInfo = propertyInfo;
     attributes = iniPropertyAttribute;
 }