x と y の 2 つの文字列変数に相関する Receive アクティビティを持つ Windows ワークフローがあります。y は角括弧で囲まれている可能性があります (例: "[some data]")。y が角括弧で囲まれている場合、2 つの興味深い点に気付きます。
ワークフローがシリアル化されると、y への参照は「%[some data]」になります。つまり、角かっこの前にパーセントが挿入されます。
相関条件を満たすことができません。"[some data]"、"%[some data]"、"
[some data
] を試しましたが、何も動作しないようです。
相関変数に角かっこが含まれている可能性がある状況を処理する方法の両方について、いくつかのアドバイスはありますか? 相関条件を満たすために、既存のワークフローでできることはありますか?
編集
私の具体的な問題は、相関関係にあると私は認識しています。プログラムでワークフロー サービスを作成しており、Receive アクティビティは次のようになります。
var receiveRequest = new Receive
{
DisplayName = "Receive",
OperationName = "DoIt",
CanCreateInstance = true,
ServiceContractName = "MyService",
SerializerOption = SerializerOption.DataContractSerializer,
Content = receiveParameters,
CorrelatesOn = new MessageQuerySet
{
{ "x", new XPathMessageQuery("sm:body()/foo:DoIt/foo:x", myNamespaceManager) },
{ "y", new XPathMessageQuery("sm:body()/foo:DoIt/foo:y", myNamespaceManager) },
},
CorrelatesWith = actionCorrelationHandle,
CorrelationInitializers =
{
new RequestReplyCorrelationInitializer
{
CorrelationHandle = requestReplyHandleVariable
}
}
};
y に右角括弧 "]" が含まれていない限り、上記は正常に機能します。
ありがとう、エリック