为接收活动属性分配动态值

时间:2011-10-17 15:28:57

标签: c#-4.0 workflow-foundation workflow-foundation-4 workflowservice

我正在使用命令式代码编写自定义活动。在我的编译中,我将接收活动作为组合活动之一。在该活动中,我想动态设置ServiceContractName和OperationName属性,这意味着,当使用我的自定义活动的开发人员必须设置时。所以我为此目的宣布了一个属性和一个InArgument。我将此属性和Argument值分配给本地(序列varriable)。当我尝试将这些varriable分配给Receive活动属性时,我收到编译时错误。如何将Varriable分配给Receive活动的字符串和XName属性。

return new Sequence
{
    Variables = { operationName, serviceContractName},
    Activities = 
    {
        new Assign<string>
        {
            To = new OutArgument<string>(serviceContractName),
            Value = new InArgument<string>(ctx => ServiceContractName.Get(ctx))
        },

        new Assign<string>
        {
            To = new OutArgument<string>(operationName),
            Value = new InArgument<string>(ctx => OperationName)
        },

        new Receive
            {
                ServiceContractName = serviceContractName,
                OperationName = operationName,
                CanCreateInstance = true,
                Content = new ReceiveMessageContent
                {
                    Message = new OutArgument<Request>(request)
                }
            }
        },
    }
};

1 个答案:

答案 0 :(得分:0)

你做不到。 ServiceContractName和OperationName不是InArguments而是普通属性,它们必须在设计时设置,而不是在运行时设置。

相关问题