public override bool TryGetMember(GetMemberBinder binder, out object result)
        {
            KeyDataCollection keys = null;

            if (data != null)
            {
                keys = data[binder.Name];
            }

            if (keys == null)
            {
                keys = new KeyDataCollection(StringComparer.OrdinalIgnoreCase);
            }

            result = new IniSettingKeys(keys);

            return(true);
        }
        public override bool TryGetIndex(GetIndexBinder binder, object[] indexes, out object result)
        {
            KeyDataCollection keys = null;

            if (indexes.Length > 0)
            {
                var key = SafeClrConvert.ToString(indexes[0]);

                if (data != null)
                {
                    keys = data[key];
                }
            }

            if (keys == null)
            {
                keys = new KeyDataCollection(StringComparer.OrdinalIgnoreCase);
            }

            result = new IniSettingKeys(keys);

            return(true);
        }