0

我正在 vb.net 中创建一个非常简单的状态机类库项目。这只有 3 个状态 - CreateApplication、ProcessApplication 和 CompleteApplication。我在同一个项目中创建了一个接口。我通过调用 ApplicationService.CreateApplication(obj of ApplicationDetail) 从 Web 应用程序调用它

 <ExternalDataExchange()> _
    Public Interface IApplicationService
        Event ApplicationCreated As EventHandler(Of ApplicationDetailEventArgs)
        Event ApplicationProcessed As EventHandler(Of ApplicationDetailEventArgs)
    End Interface

我在 ApplicationService.vb 中也有它的实现

 Public Class ApplicationService
        Implements IApplicationService

        Public Event ApplicationCreated(ByVal sender As Object, ByVal e As ApplicationDetailEventArgs) Implements IApplicationService.ApplicationCreated

        Public Event ApplicationProcessed(ByVal sender As Object, ByVal e As ApplicationDetailEventArgs) Implements IApplicationService.ApplicationProcessed

        Public Shared Sub CreateApplication(ByVal objApplicationDetail As ApplicationDetail)
            Using workflowRuntime As New WorkflowRuntime()
                AddHandler workflowRuntime.WorkflowCompleted, AddressOf OnWorkflowCompleted
                AddHandler workflowRuntime.WorkflowTerminated, AddressOf OnWorkflowTerminated

                Dim workflowInstance As WorkflowInstance
                workflowInstance = workflowRuntime.CreateWorkflow(GetType(Workflow1))
                workflowInstance.Start()
            End Using
            'Code to create application
        End Sub

        Shared Sub OnWorkflowCompleted(ByVal sender As Object, ByVal e As WorkflowCompletedEventArgs)
        End Sub

        Shared Sub OnWorkflowTerminated(ByVal sender As Object, ByVal e As WorkflowTerminatedEventArgs)
        End Sub

    End Class

我的问题是,当我尝试运行它时,我得到了 workflowInstance 的值。InstanceId 为空。

自过去 2 天以来,我一直在尝试解决此问题。有人可以帮忙吗。

提前致谢!

4

1 回答 1

0

嗯..我能够找出问题所在。它与工作流程无关。这是 Visual Studio(2005 和 2008)中的一个错误。当您在 VB.Net 中调试时,Guid 的值显示为空,但如果您使用 Guid.ToString.. 它工作正常。这在 C# 中可以正常工作。

于 2010-01-22T18:55:44.657 回答