C# 工作流引擎如何接收外部事件?

C# 工作流引擎如何接收外部事件?,c#,java,workflow,workflow-foundation,jbpm,C#,Java,Workflow,Workflow Foundation,Jbpm,通过上面的代码,我们的应用程序可以使用paymentProcessing.RaisexxxEvent与工作流实例交互。我的问题是:实施这种机制的原则是什么。我认为这是一种事件驱动模式,但我如何实现这种机制,为什么?请给我指点方向或任何参考资料,不胜感激 顺便问一下,jBPM中有机制吗?JBPM是否包括顺序工作流和状态机工作流,如Windows工作流基础? 谢谢 WF定义了一组处理线程调度的核心工作流服务,工作流 持久性、事务和工作流跟踪。WF的设计者可以嵌入 这些服务的实现是在运行时引擎本身中实

通过上面的代码,我们的应用程序可以使用paymentProcessing.RaisexxxEvent与工作流实例交互。我的问题是:实施这种机制的原则是什么。我认为这是一种事件驱动模式,但我如何实现这种机制,为什么?请给我指点方向或任何参考资料,不胜感激

顺便问一下,jBPM中有机制吗?JBPM是否包括顺序工作流和状态机工作流,如Windows工作流基础?
谢谢

WF定义了一组处理线程调度的核心工作流服务,工作流 持久性、事务和工作流跟踪。WF的设计者可以嵌入 这些服务的实现是在运行时引擎本身中实现的,但它们明智地选择了外部化 将它们的实现放在可插拔的服务中。这将使您掌握控制权。你决定 要使用哪些服务(有些是可选的)以及每个服务要使用哪些实现

WF还支持另一种称为本地服务(有时称为数据服务)的服务 交换服务)。这是一个由您自己设计和实现的服务。当地的服务可以提供服务 这几乎是任意用途,但有一个一般用途是促进工作流实例之间的通信 和主机应用程序。与此相反,每个核心工作流服务都有一个目的(例如, 由Microsoft定义的持久性、跟踪)。您可以开发替代实现 对于每个核心服务,但这不会改变它们定义的用途

使本地服务可用于工作流实例。有几种方法可以做到这一点。最简单的方法是使用CallExternalMethodActivity并对其进行配置

该服务还应该有一个接口,并用[ExternalDataExchange]修饰

如果您正在考虑编写自己的核心服务实现,这里有一个链接,介绍如何提供自己的核心工作流服务


我想你没有理解我的意思,我知道你说了什么,但我的问题是MS如何实现“可插拔服务”,有什么示例代码吗?你想自己编写核心服务的实现吗?或者您正在研究如何编写本地服务?或者您正在研究如何引发事件以便工作流处理它?请编写我自己的核心服务实现。以下是一个链接,用于编写您自己的自定义工作流跟踪服务。您希望提供自己的核心服务是什么。
WorkflowRuntime workflowRuntime = new WorkflowRuntime();

 ExternalDataExchangeService dataExchangeService;
 dataExchangeService = new ExternalDataExchangeService();
 workflowRuntime.AddService(dataExchangeService);

 PaymentProcessingService paymentProcessing;
 paymentProcessing = new PaymentProcessingService();
 dataExchangeService.AddService(paymentProcessing);