コード例 #1
0
ファイル: ChangeTracker.cs プロジェクト: longde123/grove
        public void Copy(object original, CopyService copyService)
        {
            var org = (TrackableEvent)original;

            // create a copy without handlers
            _sender        = copyService.Copy(org._sender);
            _changeTracker = copyService.Copy(org._changeTracker);
            _handlers      = new TrackableList <EventHandler>();
            _handlers.Initialize(_changeTracker);
        }
コード例 #2
0
ファイル: Publisher.cs プロジェクト: callumhutchy/grove
        public void Copy(object original, CopyService copyService)
        {
            var org = (Publisher)original;

            _changeTracker      = copyService.Copy(org._changeTracker);
            _eventsCache        = org._eventsCache;
            _subscribersByEvent = new Dictionary <Type, TrackableList <object> >();

            foreach (var subscriber in org._subscribersByEvent)
            {
                var subscribers = subscriber.Value
                                  .Where(x => IsUiComponent(x) == false)
                                  .Select(copyService.Copy);

                var trackableSubscribers = new TrackableList <object>(subscribers);
                trackableSubscribers.Initialize(_changeTracker);
                _subscribersByEvent.Add(subscriber.Key, trackableSubscribers);
            }
        }