示例#1
0
        private void OnComponentConfigurationListChanged(object sender,
                                                         BuildListEventArgs <BuildComponentConfiguration> e)
        {
            if (_multiMap == null)
            {
                _multiMap =
                    new BuildMultiSet <string, BuildComponentConfiguration>();
            }

            switch (e.ChangeType)
            {
            case BuildListChangeType.Added:
                BuildComponentConfiguration addedItem = e.ChangedItem;
                _multiMap.Add(addedItem.ComponentName, addedItem);
                break;

            case BuildListChangeType.Removed:
                BuildComponentConfiguration removedItem = e.ChangedItem;
                _multiMap.Remove(removedItem.ComponentName, removedItem);
                break;

            case BuildListChangeType.Replaced:
                BuildComponentConfiguration changedItem      = e.ChangedItem;
                BuildComponentConfiguration replacedWithItem = e.ReplacedWith;
                _multiMap.Remove(changedItem.ComponentName, changedItem);
                _multiMap.Add(replacedWithItem.ComponentName, replacedWithItem);
                break;

            case BuildListChangeType.Cleared:
                _multiMap.Clear();
                break;
            }
        }