是否可以在可以在表达式中使用的WF4活动中使用动态对象(扩展DynamicObject)?
运行单元测试时会收到以下错误消息,该单元测试会调用以动态对象作为参数的活动。
使用DynamicObject作为参数类型
System.Activities.InvalidWorkflowException:以下错误 处理工作流树时遇到: 'Literal':Literal只支持值类型和 不可变类型System.String。 System.Dynamic.DynamicObject类型 不能用作文字。 '法律':私人实施 activity'1:Legal'有以下验证错误:编译器 处理表达式“deal.Region =”EMEA“”时遇到错误。 'Region'不是'System.Dynamic.DynamicObject'的成员。
使用实际类型作为参数类型
System.Activities.InvalidWorkflowException:以下错误 处理工作流树时遇到: 'Literal':Literal只支持值类型和 不可变类型System.String。类型 WorkflowTest.DealValueHelper不能用作文字。 '合法':私人实施活动'1:法律'有 以下验证错误:遇到处理的编译器错误 表达“deal.Region =”EMEA“”。 'Region'不是其成员 'WorkflowTest.DealValueHelper'。
答案 0 :(得分:1)
是的,这绝对有效。我在Microsoft.Activities.Extensions.WorkflowArguments
中创建了这样一个对象。
尝试直接分配到活动的InArgument
时,您遇到的问题可能是错误的。我写了一篇关于这个Passing arguments to Workflow Activities (again)