如何在WorkflowApplication.OnUnhandledException中使用委托

时间:2012-10-23 10:20:41

标签: c# workflow-foundation-4 func

WF4使用4个Action,我可以用它来委托方法。像这样。

_workflowApplication.Completed = delegate(WorkflowApplicationCompletedEventArgs e) { WorkflowApplicationCompleted(e); };

然而,还有2个Func。我可以看到如何在线使用它们,但我希望它们委托给一个方法。

我试过了:

_workflowApplication.PersistableIdle = delegate(WorkflowApplicationIdleEventArgs e) { WorkflowApplicationPersistableIdle(e); };

但我没有回复声明。

我试过了:

_workflowApplication.OnUnhandledException = (returnValue) => WorkflowApplicationOnUnhandledException(e, returnValue);

但是e没有解决。

如何委托给某个方法?

1 个答案:

答案 0 :(得分:2)

private void SetExceptionHandler(WorkflowApplication app)
{
    app.OnUnhandledException = x => HandleTheUnhandled(x);
}

private UnhandledExceptionAction HandleTheUnhandled(
    WorkflowApplicationUnhandledExceptionEventArgs args)
{
    //some logic
    return UnhandledExceptionAction.Abort;
}

或者

app.OnUnhandledException = x => 
{
    // some logic
    return UnhandledExceptionAction.Abort;
};

或者,如果不需要逻辑,

app.OnUnhandledException = x => UnhandledExceptionAction.Abort;

lambda表达式。学习它们。爱他们。