Introduction
We can create code activity as a part of workflow solutions using workflow foundation 4.5. In this post I will show how we can create a native code activity and access the results in asp.net controller.
Native code activity
//The string mentioned in NativeActivity is the resut type.
public sealed class MySampleNativeCode : NativeActivity {
// Define an activity input argument of type string
public InArgument Name { get; set; }
protected override void Execute(NativeActivityContext context)
{
var name = context.GetValue(Name);
//Here we set the string value to the Result property in NativeCode
context.SetValue(base.Result, "Hello from Native Code Activity " + name);
}
}
Invoke the code activity
The code activity is invoked in asp.net web api controller.
// GET: api/CustomerRegistration
public string Get()
{
//Create a instance of the native code
Activity wf = new MySampleNativeCode();
//Define the input argumentes
Dictionary arguments = new Dictionary();
arguments.Add("Name", "Suhail");
//Invoke the workflow
IDictionary outputs = WorkflowInvoker.Invoke(wf, arguments);
//Get the output value and assign to return string
var returnString = outputs["Result"].ToString();
return returnString;
}
Conclusion
You can see the value in “returnString” which is returned from Native Code Activity.