using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; namespace EmitCreateDynamicProxy { class M : Model, INotifyPropertyChanged { public override string Name { get => base.Name; set { base.Name = value; Console.WriteLine("Before"); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Name")); Console.WriteLine("After"); } } public event PropertyChangedEventHandler PropertyChanged; } }