Beispiel #1
0
            // Local function to avoid reference from stack when garbage collector runs
            static NotifyPropertyChangedReferencingCircleHelper ReferencingCircleHelper()
            {
                var selfReferencingObject = new NotifyPropertyChangedReferencingCircleHelper();

                selfReferencingObject.Other = selfReferencingObject;

                var otherReferencingObject = new NotifyPropertyChangedReferencingCircleHelper {
                    Other = selfReferencingObject
                };

                return(otherReferencingObject);
            }
Beispiel #2
0
        public void SettingReferenceToNull_ThatIsCyclic_WillNotBeUntracked()
        {
            var selfReferencingChild = new NotifyPropertyChangedReferencingCircleHelper();

            selfReferencingChild.Other = selfReferencingChild;

            var referenceToChild = new NotifyPropertyChangedReferencingCircleHelper {
                Other = selfReferencingChild
            };

            var SourceSynchronizerRoot = new SourceSynchronizerRoot(referenceToChild);

            Assert.Equal(2, SourceSynchronizerRoot.TrackedObjects.Count());

            referenceToChild.Other = null;

            Assert.Equal(2, SourceSynchronizerRoot.TrackedObjects.Count());
        }