2012-10-23 71 views
0

WF4使用4個可用於委託給方法的操作。喜歡這個。如何在WorkflowApplication.OnUnhandledException中使用委託

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

但是也有2個Func。我可以看到如何內聯使用它們,但我希望它們可以委託給一個方法。

我想:

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

但我沒有return語句。

我想:

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

但E不解決。

我該如何委託一種方法?

回答

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表達式。學習它們。愛他們。