发送System.String的消息是包装xml

时间:2015-03-23 17:20:40

标签: biztalk

我有一个简单的odx,它构造一个System.String类型的消息,然后通过一个发送端口推出。

输出消息的内容很好,除了它的前缀为:

<?xml version="1.0"?>
<string>

e.g。

<?xml version="1.0"?>
<string>
Good plain text format here

如何在不必使用自定义管道组件的情况下阻止内容被包装?

2 个答案:

答案 0 :(得分:2)

将字符串直接写入帮助程序库中的XLANGMessage(就像您将二进制数据写入消息一样),并确保使用传递传输管道。我不确定这是否适用于System.String消息,但我知道它可以使用XmlDocument消息。

e.g。

public static void LoadXLANGMsgFromString(string source, XLANGMessage dest)
{
    var bytes = Encoding.UTF8.GetBytes(source);
    using (MemoryStream ms = new MemoryStream(bytes, 0, bytes.Length, false, true))
    {
        dest[0].LoadFrom(ms);
    }
}

您需要使用MemoryStream的构造函数来确保公开基础数据流以供XLANG使用。然后,在Orchestration消息分配形状中:

msg = new System.Xml.XmlDocument();
Helper.LoadXLANGMsgFromString("Good plain text format here", msg);

答案 1 :(得分:0)

Orchestration预计仅适用于xml类型或非类型化。使用字符串类型,它会自动在其上创建一个xml包装器。我认为除非你想在编写之前使用自定义发送管道组件取出xml标签,否则不会有任何办法。