BizTalk 订阅顺序的评估是通过 BizTalk 引擎的触发器逐一执行已注册的订阅来实现的。其中,订阅表达式会被评估以确定它是否与消息实例匹配。如果发现多个订阅与消息实例匹配,则这些订阅会按照以下顺序进行排列:
下面给出一段代码示例来说明 BizTalk 订阅顺序的评估过程:
public bool EvaluateSubscription(XmlDocument messageDoc, string subscriptionXml) { // load messageDoc into a message context RoutingContext context = new RoutingContext(new Message(messageDoc));
// create subscription object and evaluate against the message context
Subscription subscription = new Subscription(subscriptionXml);
bool result = subscription.Evaluate(context);
return result;
}
在以上代码中,订阅表达式被加载进入 Subscription 对象中,并将消息实例加载进入 RoutingContext 对象中。最后,调用 Evaluate 方法来评估是否存在匹配的订阅。如果存在,返回 true,否则返回 false。