如何在 BizTalk Orchestration 中以表达式形式编写 CASE 语句?
我尝试过使用下面的代码,但是它说“未命名的标识符大小写不存在您是否缺少程序集引用?”
switch case <value>
{
case "1":
construct message1
{
message1=message2;
}
break;
case default:
break;
}
如何在 BizTalk Orchestration 中以表达式形式编写 CASE 语句?
我尝试过使用下面的代码,但是它说“未命名的标识符大小写不存在您是否缺少程序集引用?”
switch case <value>
{
case "1":
construct message1
{
message1=message2;
}
break;
case default:
break;
}
BizTalk 编排表达式编辑器有多种限制,最值得注意的是,您通常会在其他地方编写的大量 C# 代码不被接受:switch
语句就是一个示例。
只要您使用正常的表达式形状(即,不是消息赋值形状),您就可以使用 IF-ELSE 语句(在 if 谓词中减去赋值)。微软只允许 C# 子集的公开原因是“将业务流程的代码与其实现代码分开。”</a>
所以如果你想做复杂的消息赋值,你不应该把它打包成一个单一的表达式形状(微软试图阻止你)。您可以改为使用与您的案例等效的决定形状,每个分支都将您带到适当的消息分配/表达式。
如果您需要的不仅仅是几个可能的分支,那么您可以考虑编写一个包含所有消息分配逻辑的 C# 辅助程序集,以避免过于复杂的编排。
switch
,除其他外,在表达式形状中不受支持。
更多信息:http: //msdn.microsoft.com/en-us/library/aa559103.aspx
Orchestration 等价物通常是 Decide Shape。