1

是否可以将 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方法?

谢谢!

4

1 回答 1

0

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

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

另外,我很确定您的代码只会将消息路由到编排,而不是任何内部/持久实例。

我不得不问,你为什么要这样做?最好使用常规异常处理技术在编排内部处理您的故障消息。

于 2014-08-07T14:14:38.910 回答