Postsharp Recordable 和 NotifyPropertyChanged

Postsharp Recordable and NotifyPropertyChanged

我将 "standard" NotifyPropertyChanged 方面与 Recordable 结合使用,效果很好。

现在我想检查自定义脏逻辑的更改。 为此,我编写了一个使用

的自定义方面
[OnLocationSetValueAdvice, MulticastPointcut(Targets = MulticastTargets.Property)]
public void OnPropertySet(LocationInterceptionArgs args)

此方法在手动更改 属性 时被调用,但在执行撤消时不会被调用,这对我来说很奇怪。

如何捕捉来自撤消的更改?

PostSharp 的 [Recordable] 记录在字段级别而非属性级别发生变化,因此您的方面在 undo/redo 期间被跳过。您应该将它应用于字段并在 after Recordable.

之后对其进行排序

或者,您可以实施 callback interface