创建单例时,为什么会重复单例内的作用域?

When creating a singleton, why would the scope within the singleton be repeated?

作为我的 的后续行动,我一直在进一步研究我认为存在一致问题的应用程序的设计,同时深入研究如何正确理解它(它的文档已过时) ), 我遇到了编排的一部分,我不清楚为什么会这样。

应用是单例设计:

现在虽然我明白应用程序正在实现类似单例的设计,但我不明白为什么在监听形状之前重复用红色圈出的范围。我在网上没有看到任何记录这样的设计的东西,我也不知道它添加了什么功能。所以我的问题是:这完成了什么功能?有必要吗?

您折叠了第一个作用域,因此我们看不到其中包含什么,但您指出这是相同的代码。通常这将处理第一个激活消息。 listen 内的范围将用于匹配相关性的后续消息。

有时,如果您有很多重复的 code/logic,您可能希望调用包含该 code/logic 的另一个编排。

当然,另一种选择是将流程直接放在第一个循环之后,然后是侦听,这样会更干净并删除重复的代码。根据 BizTalk Singleton Orchestration Design