Convert BizTalkMessage to XLANGMessage



是否可以将Microsoft.BizTalk.Operations.BizTalkMessage实例转换为Microsoft.XLANGs.BaseTypes.XLANGMessage实例(不丢失BizTalkMessage的上下文)?

原因是我想检索所有构造的编排消息实例,然后将这些消息添加到ESB Toolkit方法:

private List<BizTalkMessage> GetOrchestrationMessages()
{
    List<BizTalkMessage> messages = new List<BizTalkMessage>();
    MessageBoxServiceInstance serviceInstance = GetServiceInstance();
    foreach (object item in serviceInstance.Messages)
    {
        BizTalkMessage bizTalkMessage = (BizTalkMessage)item;
        messages.Add(bizTalkMessage);
    }
    return messages;
}

public void HelperMethod(XLANGMessage faultMessage)
{
     foreach(BizTalkMessage biztalkMessage in GetOrchestrationMessages)
     {
        XLANGMessage xlangMessage = ConvertToXLANGMessage(biztalkMessage);
          Microsoft.Practices.ESB.ExceptionHandling.ExceptionMgmt.AddMessage(faultMessage, xlangMessage);
     }
}

那么,主要的问题是如何实现ConvertToXLANGMessage方法?

谢谢!

在任何BizTalk消息类型,XLANGMessage, IBaseMessage, WMI等之间都没有直接转换。

你能做吗?当然,但是您实际上是在手动重新创建消息。

而且,我很确定您的代码将只获得路由到业务流程的消息,而不是任何内部/持久化实例。

我不得不问,你为什么要这样做?使用常规异常处理技术在业务流程内处理Fault消息会更好。

相关内容

  • 没有找到相关文章

最新更新