HasUserCode 用于关联?

HasUserCode for associations?

在 MDriven 中,可以为属性设置 HasUserCode,以生成调用的挂钩方法,例如即将更改属性时。

对于几个关联,或者更准确地说:对于几个链接角色,我需要类似的能力。

例如,对于 linkrole MyClass.RelatedThing 我想在有人 myClassObj.RelatedThing = thatThing;myClassObj.RelatedThing = null;.

时执行某个操作

我需要这个的所有链接角色都是单链接,但如果知道如何为多链接完成它会很高兴。

我已经插入了一个单独的缓存,它在属性和链接发生变化时执行操作,但我不喜欢将此功能放在那样的中心位置,因为它只涉及一些特定的 类 和 linkroles,而缓存是全局的 "thing".

HasUserCode 的关系问题在于它不是万无一失的。由于您可以在两端设置关系,因此当通过添加到另一端来隐式设置单个 link 端时,混淆就开始了。

这种混淆导致了太多的不确定性,以至于我们从 associationsends 中删除了 HasUserCode 选项。

一个选项是分配您需要跟踪的 object/classes 的 PropertyChangedEventHandler PropertyChanged 事件。

请注意,这是 .net INotifyPropertChange 策略,它不允许您停止分配 - 但您会看到它已经发生。