0

如何在 BizTalk Orchestration 中以表达式形式编写 CASE 语句?

我尝试过使用下面的代码,但是它说“未命名的标识符大小写不存在您是否缺少程序集引用?”

switch case <value>
{
   case "1":
       construct message1
       {
             message1=message2;
        }
       break;
   case default:
       break;
}
4

2 回答 2

3

BizTalk 编排表达式编辑器有多种限制,最值得注意的是,您通常会在其他地方编写的大量 C# 代码不被接受:switch语句就是一个示例。

只要您使用正常的表达式形状(即,不是消息赋值形状),您就可以使用 IF-ELSE 语句(在 if 谓词中减去赋值)。微软只允许 C# 子集的公开原因是“将业务流程的代码与其实现代码分开。”</a>

所以如果你想做复杂的消息赋值,你不应该把它打包成一个单一的表达式形状(微软试图阻止你)。您可以改为使用与您的案例等效的决定形状,每个分支都将您带到适当的消息分配/表达式。

如果您需要的不仅仅是几个可能的分支,那么您可以考虑编写一个包含所有消息分配逻辑的 C# 辅助程序集,以避免过于复杂的编排。

于 2014-04-08T17:20:14.537 回答
1

switch,除其他外,在表达式形状中不受支持。

更多信息:http: //msdn.microsoft.com/en-us/library/aa559103.aspx

Orchestration 等价物通常是 Decide Shape。

于 2014-04-08T16:10:55.817 回答