public static bool Set <T>(this INotifierObject n, T value, [CallerMemberName] string propertyName = null) => n.Notifier.Set(n, value, propertyName, null);
public static bool Set <T>(this INotifierObject n, T value, Action <T, T> postUpdateAction, [CallerMemberName] string propertyName = null) => n.Notifier.Set(n, value, propertyName, postUpdateAction);
public static T Get <T>(this INotifierObject n, [CallerMemberName] string propertyName = null) => n.Notifier.Get <T>(n, old => default(T), propertyName);
public static T Get <T>(this INotifierObject n, Func <T, T> getter, [CallerMemberName] string propertyName = null) => n.Notifier.Get <T>(n, getter, propertyName);
public static Notifier GetNotifier(this INotifierObject obj) => obj.Notifier;