如何将XmlDocument转换为XLANGMessage类型
本文关键字:XLANGMessage 类型 转换 XmlDocument | 更新日期: 2023-09-27 18:10:11
如何将XmlDocument转换为XLANGMessage类型?
我试过下面的方法,下面两个方法抛出错误:"Cannot implicit convert XmlDocument to XLangMessage…"
有其他的想法,请分享。
TRY1——
public XLANGMessage convertToXlandMsgFromXml(XmlDocument tempInput)
{
XLANGMessage sampleOutput;
tempInput.Load(@"InputMessage.xml");
XLANGMessage sampleOutput = tempInput;
}
TRY2——
public class FileStreamFactory : IStreamFactory
{
string _fname;
public FileStreamFactory(string fname)
{
_fname = fname;
}
public Stream CreateStream()
{
return new FileStream
(
_fname,
FileMode.Open,
FileAccess.Read,
FileShare.Read
);
}
}
public static void AssignStreamFactoryToPart(XLANGMessage msg)
{
IStreamFactory sf = new FileStreamFactory( @"c:''data.xml" );
msg[0].LoadFrom( sf );
}
}
您应该查看此链接(最后一部分):http://blogs.msdn.com/b/paolos/archive/2009/09/10/4-different-ways-to-process-an-xlangmessage-within-an-helper-component-invoked-by-an-orchestration.aspx
创建自定义类型,例如CustomBTXMessage
[Serializable]
public sealed class CustomBTXMessage : BTXMessage
{
public CustomBTXMessage(string messageName, Context context)
: base(messageName, context)
{
context.RefMessage(this);
}
}
然后,您可以从该类型创建一个对象,并将xml加载到主体部分。var customBTXMessage = new CustomBTXMessage("XLANGMessage", Service.RootService.XlangStore.OwningContext);
customBTXMessage.AddPart(string.Empty, "Body");
我会将xml文档作为流加载然后你可以从流中加载body部分
customBTXMessage[0].LoadFrom(stream);
这部分代码将返回一个XLANGMessage
var responseMessage = customBTXMessage.GetMessageWrapperForUserCode();
好运。
乔纳森