HI,
I have a custom sequential workflow created in VS 2010. I am trying to set custom role on create task special permissions.
I have used the below code:
public HybridDictionary createTask_SpecialPermissions;
private void createTaskforApprover_MethodInvoking(object sender, EventArgs e)
{
this.ApproverTaskId = Guid.NewGuid();
CreateTask taskForApprover = sender as CreateTask;
this.TaskPropertiesForApprover.AssignedTo = "domain\approveruserid";
this.TaskPropertiesForApprover.TaskType = 1;
using (SPSite oSite = new SPSite(workflowProperties.SiteId))
{
using (SPWeb oWeb = oSite.OpenWeb(workflowProperties.WebId))
{
oWeb.AllowUnsafeUpdates = true;
SPRoleDefinition oSPRoleDefinition = oWeb.RoleDefinitions["custom role"];
SPRoleAssignment oSPRoleAssignmentManager = new SPRoleAssignment("domain\approveruserid", "", "", "");
oSPRoleAssignmentManager.RoleDefinitionBindings.Add(oSPRoleDefinition);
createTask_SpecialPermissions = new HybridDictionary();
createTask_SpecialPermissions.Add("domain\approveruserid", oSPRoleAssignmentManager);
taskForApprover.SpecialPermissions = createTask_SpecialPermissions;
}
}
taskForApprover.TaskProperties = TaskPropertiesForApprover;
} I am getting the error: CallExternalMethodActivity parameter specialPermissions not serializable
Stack Trace: at System.Workflow.Activities.InvokeHelper.CloneOutboundValue(Object source, BinaryFormatter formatter, String name)
at System.Workflow.Activities.InvokeHelper.GetParameters(MethodBase methodBase, WorkflowParameterBindingCollection parameterBindings, ParameterModifier[]& parameterModifiers)
at System.Workflow.Activities.CallExternalMethodActivity.Execute(ActivityExecutionContext executionContext)
at System.Workflow.ComponentModel.ActivityExecutor`1.Execute(T activity, ActivityExecutionContext executionContext)
at System.Workflow.ComponentModel.ActivityExecutor`1.Execute(Activity activity, ActivityExecutionContext executionContext)
at System.Workflow.ComponentModel.ActivityExecutorOperation.Run(IWorkflowCoreRuntime workflowCoreRuntime)
at System.Workflow.Runtime.Scheduler.Run()
How to fix this?
Thanks