我有两个聚合根...... AR1和AR2。 AR1拥有AR2实例的引用(ID)集合。在其中一个AR1方法中,会引发域事件以更新AR2实例的集合。使用此处提到的技术在事务完成后引发域事件:http://www.jayway.com/2013/06/20/dont-publish-domain-events-return-them一切都按预期工作。
我的问题是:我从域事件调用更新AR2的方法当前是公共的(不能是内部的),因为域事件正在我的应用程序服务层执行(不同程序集到我的业务逻辑层) 。我只希望这个方法由域事件执行,而不是别的。
我该怎么做呢?
答案 0 :(得分:1)
您可以要求将事件对象作为AR2方法的参数。这将是一个很好的指标,该方法只应作为引发事件的结果调用。
public void someMethod(SomeOccuredEvent event)
我们可以在实施最终一致性部分的Effective Aggregate Design Part III中看到这种方法。