System.Configuration.ConfigurationElementCollection.GetElementKey C# (CSharp) Метод

GetElementKey() защищенный абстрактный Метод

protected abstract GetElementKey ( ConfigurationElement element ) : Object
element ConfigurationElement
Результат Object
        protected abstract Object GetElementKey(ConfigurationElement element);
        internal Object GetElementKeyInternal(ConfigurationElement element) {

Usage Example

Пример #1
0
        protected internal override void Unmerge(ConfigurationElement sourceElement, ConfigurationElement parentElement, ConfigurationSaveMode updateMode)
        {
            ConfigurationElementCollection source = (ConfigurationElementCollection)sourceElement;
            ConfigurationElementCollection parent = (ConfigurationElementCollection)parentElement;

            for (int n = 0; n < source.Count; n++)
            {
                ConfigurationElement sitem = source.BaseGet(n);
                object key = source.GetElementKey(sitem);
                ConfigurationElement pitem = parent != null?parent.BaseGet(key) as ConfigurationElement : null;

                if (pitem != null && updateMode != ConfigurationSaveMode.Full)
                {
                    ConfigurationElement nitem = CreateNewElementInternal(null);
                    nitem.Unmerge(sitem, pitem, ConfigurationSaveMode.Minimal);
                    if (nitem.HasValues())
                    {
                        BaseAdd(nitem);
                    }
                }
                else
                {
                    ConfigurationElement nitem = CreateNewElementInternal(null);
                    nitem.Unmerge(sitem, null, ConfigurationSaveMode.Full);
                    BaseAdd(nitem);
                }
            }

            if (updateMode == ConfigurationSaveMode.Full)
            {
                EmitClear = true;
            }
            else if (parent != null)
            {
                for (int n = 0; n < parent.Count; n++)
                {
                    ConfigurationElement pitem = parent.BaseGet(n);
                    object key = parent.GetElementKey(pitem);
                    if (source.IndexOfKey(key) == -1)
                    {
                        if (removed == null)
                        {
                            removed = new ArrayList();
                        }
                        removed.Add(pitem);
                    }
                }
            }
        }