命令型コードを使用してカスタムアクティビティを作成しています。私の構成では、構成されたアクティビティの1つとしてReceiveアクティビティがあります。そのアクティビティでは、ServiceContractNameプロパティとOperationNameプロパティを動的に設定します。つまり、カスタムアクティビティを使用している開発者が設定する必要がある場合です。そこで、この目的のために1つのプロパティと1つのInArgumentを宣言しました。このプロパティと引数の値をローカル(シーケンス変数)に割り当てます。これらの変数をReceiveアクティビティプロパティに割り当てようとすると、コンパイル時エラーが発生します。受信アクティビティの文字列およびXNameプロパティにVarriableを割り当てる方法。
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)
}
}
},
}
};