Присвоение динамического значения свойствам действия приема - PullRequest
0 голосов
/ 17 октября 2011

Я пишу пользовательское действие, используя императивный код. В моем сочинении у меня есть действие Receive как одно из составных действий. В этом упражнении я хочу установить свойства ServiceContractName и OperationName динамически, то есть когда нужно установить разработчик, который потребляет мое настраиваемое действие. Поэтому я объявил одно свойство и один InArgument для этой цели. Я присваиваю это свойство и значение аргумента локальному (последовательность варьируется). Когда я пытаюсь назначить эти переменные для свойств действия Receive, я получаю сообщение об ошибке компиляции. Как назначить переменную для свойства string и XName действия Receive.

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 голосов
/ 17 октября 2011

Вы не можете этого сделать.ServiceContractName и OperationName не являются InArguments, а являются обычными свойствами, и их необходимо устанавливать во время разработки, а не во время выполнения.

...