public void OnMethodInvoke(MethodInterceptionArgs args) { try { PropertyChangesTracker.PushOnStack(args.Instance); args.Proceed(); } finally { PropertyChangesTracker.PopFromStack(); PropertyChangesTracker.RaisePropertyChangedIfNeeded(args.Instance); } }
public void OnFieldSet(LocationInterceptionArgs args) { if (this.fieldValueComparer.AreEqual(args.LocationFullName, args.GetCurrentValue(), args.Value)) { args.ProceedSetValue(); return; } args.ProceedSetValue(); this.childPropertyChangedProcessor.HandleFieldChange(args); PropertyChangesTracker.RaisePropertyChangedIfNeeded(args.Instance); }