我有一个简单的odx,它构造一个System.String类型的消息,然后通过一个发送端口推出。
输出消息的内容很好,除了它的前缀为:
<?xml version="1.0"?>
<string>
e.g。
<?xml version="1.0"?>
<string>
Good plain text format here
如何在不必使用自定义管道组件的情况下阻止内容被包装?
答案 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标签,否则不会有任何办法。