基本想法是我有一个网站和一个工作流程。我需要在我的工作流程中捕获来自 aspx 页面的按钮点击。
我有一个包含 worflow 项目和网站项目的解决方案,并且 web.config 和 global.asax 已设置为与 WF 一起使用。还设置了持久性服务。
我创建了一个 StateMachine 工作流程。有几个状态(StateActivity)包含 EventDrivenActivity 实例,其中有 HandleExternalEventActivity 实例。为了正确设置后者以便应用程序可以编译,我创建了一个用 ExternalDataExchange 属性修饰的接口,并公开了必要的事件。然后我创建了一个实现这个接口的类。
这就是我所得到的。现在我需要将类连接到我的 aspx 页面;页面上的事件需要触发类中的事件。
我的代码看起来像这样:
<ExternalDataExchange()> _
Public Interface ICatWorkflow
Property RequestId() As Guid
...
Sub requestInfoEmail()
...
Event onReception(ByVal sender As Object, ByVal e As ExternalDataEventArgs)
End Interface
Class MyObject
Implements ICatWorkflow
Public Property RequestId() As Guid Implements ICatWorkflow.RequestId
...
End Property
Public Sub requestInfoEmail() Implements ICatWorkflow.onReception
...
End Sub
Event onReception(ByVal sender As Object, ByVal e As ExternalDataEventArgs)
end class
在我的 form.aspx 上,有一个按钮,而在 form.aspx.vb 页面上,有一个相应的事件处理程序:
Protected Sub btnReception_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Handles btnReception.Click
...
End Sub
然后去哪儿?