XAMLXサービスを使用するときにWF4ワークフローランティムイベントを接続する方法

StackOverflow https://stackoverflow.com/questions/2918185

質問

現在、behaviorextenselementを使用して、applydispatchbehaviorメソッドが次のように設定されているサービスビハビオールを読み込みます。

    public void ApplyDispatchBehavior(ServiceDescription serviceDescription, System.ServiceModel.ServiceHostBase serviceHostBase)
    {
        WorkflowServiceHost host = serviceHostBase as WorkflowServiceHost;
        if (host != null)
        {
            UnityService.CreateContainer();
            host.WorkflowExtensions.Add<IUnityContainer>(delegate { return UnityService.CreateChildContainer(); });

            System.Diagnostics.Debug.WriteLine("NotificationService : Adding extension");

            WorkflowRuntimeBehavior wfbehavior = serviceDescription.Behaviors.Find<WorkflowRuntimeBehavior>();
            WorkflowRuntime runtime = wfbehavior.WorkflowRuntime;

            runtime.WorkflowStarted += runtime_WorkflowStarted;
            runtime.WorkflowCreated += runtime_WorkflowCreated;

            runtime.WorkflowUnloaded += runtime_WorkflowUnloaded;
            runtime.WorkflowSuspended += runtime_WorkflowSuspended;

            runtime.WorkflowCompleted += runtime_WorkflowCompleted;
            runtime.WorkflowAborted += runtime_WorkflowAborted;
            runtime.WorkflowTerminated += runtime_WorkflowTerminated;
        }
    }

この特定のシナリオのランタイムインスタンスを参照する方法は間違っていると言うだけで、イベントはトリガーされていません。

誰かがこれを行う方法を知っていますか?前もって感謝します。

役に立ちましたか?

解決

ワークフローランティムとワークフローランティムベービオールはWF3アーティファクトですが、質問はWF4としてタグ付けされているため、WF4を使用していると仮定します。

WF4では、これを行う方法は、Custom TrackingPartIctibantを使用し、WorkFlowextensionsコレクションにそれを追加することです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top