0

I have a rule validator using workflow foundation.When my rule fails, i need to invoke a HandleError function with a local Error class object .But i can't find a way to pass this object.

It is working fine when i declare the Error class as a public variable

  //Rule then action
    private void ThenAction()
    {
        //Local error object.I need to pass this variable to HandleErrorFunction
        ErrorData error = new ErrorData();
        CodeMethodInvokeExpression codeMethodInvokeExpression = new CodeMethodInvokeExpression(new CodeThisReferenceExpression(),
                            "HandleError");
        CodeDirectionExpression param1 = new CodeDirectionExpression(FieldDirection.In,
                                                                                 new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), "error"));
        codeMethodInvokeExpression.Parameters.Add(new CodePrimitiveExpression("Error for " + stateMachineType.stateMachineId));
        codeMethodInvokeExpression.Parameters.Add(param1);
    }

    //Error handling function
    private void HandleError(ErrorData newError)
    {
        //Handle new error
    }
Prasanth V J
  • 1,126
  • 14
  • 32

1 Answers1

0

Pass the local variable as CodePrimitiveExpression

codeMethodInvokeExpression.Parameters.Add(new CodePrimitiveExpression(error));
Prasanth V J
  • 1,126
  • 14
  • 32