免责声明:我是一个完整的 biztalk 新手。
我需要能够阅读并可能编辑 biztalk 消息中的 4 个节点;最好这需要从 ac# helper 类中完成,因为我正在进行服务调用并且还为此编写了单元测试。
我已经连接了这个类,它可以与 XLANGMessage 类一起使用,我遇到的问题是在编排中的这一点,消息是基于模式的类型,我似乎没有任何方法可以修改它。
我做了一些阅读并找到了一些想法,但无法确认其中任何一个是否可以从自定义代码中工作。
免责声明:我是一个完整的 biztalk 新手。
我需要能够阅读并可能编辑 biztalk 消息中的 4 个节点;最好这需要从 ac# helper 类中完成,因为我正在进行服务调用并且还为此编写了单元测试。
我已经连接了这个类,它可以与 XLANGMessage 类一起使用,我遇到的问题是在编排中的这一点,消息是基于模式的类型,我似乎没有任何方法可以修改它。
我做了一些阅读并找到了一些想法,但无法确认其中任何一个是否可以从自定义代码中工作。
您可以轻松地将消息传入和传出 C# 助手类。最简单的方法是将输入参数和返回值视为 System.Xml.XmlDocument 类型。XLANG/s 引擎将安全地从 XLANGMessage 类型来回转换为 XmlDocument。
由于您实际上是在创建消息的“新”实例(消息在 BizTalk 中是不可变的),因此需要在消息分配形状中执行对帮助程序类的调用,外部构造形状构造原始消息的副本。
public static XmlDocument UpdateMyMessage(XmlDocument sourceMessage)
{
/* Do stuff to your Message here */
return sourceMessage;
}
要考虑的最佳实践是将所有 C# 辅助方法声明为静态。这将避免在脱水期间对助手类进行反序列化/序列化的任何问题。
BizTalk 消息是不可变的吗?
然而,一般来说,通过创建“纠正”编排并在传入消息参数上使用按引用传递选项,可以修改现有消息。