private static ConfigurationElementCollection CloneCollection(ConfigurationElementCollection sourceCollection, ConfigurationElementCollection targetCollection) { targetCollection = (ConfigurationElementCollection)CloneElement(sourceCollection, targetCollection); IMergeableConfigurationElementCollection mergeableSource = MergeableConfigurationCollectionFactory.GetCreateMergeableCollection(sourceCollection); IMergeableConfigurationElementCollection mergeableTarget = MergeableConfigurationCollectionFactory.GetCreateMergeableCollection(targetCollection); if (mergeableSource == null) { return(targetCollection); } List <ConfigurationElement> targetCollectionContents = new List <ConfigurationElement>(); foreach (ConfigurationElement sourceElement in sourceCollection) { ConfigurationElement targetElement; targetElement = CreateCopyOfCollectionElement(mergeableSource, sourceElement); targetElement = CloneElement(sourceElement, targetElement); targetCollectionContents.Add(targetElement); } mergeableTarget.ResetCollection(targetCollectionContents); targetCollection.EmitClear = sourceCollection.EmitClear; return(targetCollection); }
public ConfigurationElementCollectionMerge(ConfigurationElementCollection parentCollection, ConfigurationElementCollection localCollection) { this.parentCollection = parentCollection; ConfigurationElementMerge elementMerge = new ConfigurationElementMerge(parentCollection, localCollection); this.localCollection = (ConfigurationElementCollection)elementMerge.GetMergedElement(); this.mergeableLocalElement = MergeableConfigurationCollectionFactory.GetCreateMergeableCollection(localCollection); //TODO : what to do around: localCollection.CollectionType }