0

vb.net で非常に単純なステート マシン クラス ライブラリ プロジェクトを作成しています。これには、CreateApplication、ProcessApplication、および CompleteApplication の 3 つの状態しかありません。同じプロジェクトで作成されたインターフェイスがあります。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 に答える