0

我在 Biztalk 中发布了一个编排作为 Web 服务。有谁知道我如何使用 XML 序列化或其他东西从文件中加载 XML 并将其“转换”为 web 服务期望的消息类型?人们通常如何使用这个网络服务?我尽量避免使用无类型消息,因为我同时使用 XML 和平面文件,并且读到这可能意味着麻烦。

4

2 回答 2

0

好吧,我想一般来说,Web 服务的想法是您向它们添加一个 Web 引用,这将生成一组您可以用来与 Web 服务交互的代理类。

您通常不必担心将 xml 文件与 Web 服务格式进行序列化,生成的代码会为您完成。

但是,如果您确实希望使用 XML,您可以使用 .net 序列化将 xml 文件反序列化为生成的代理类型(以及序列化您收到的任何响应)。

这是一个如何将 xml 反序列化为类实例的基本示例,然后您可以将此实例传递给生成的代理中的方法。

            System.Xml.Serialization.XmlSerializer xser = new System.Xml.Serialization.XmlSerializer(typeof(<generated request type here>));
        xser.UnknownAttribute += new System.Xml.Serialization.XmlAttributeEventHandler(xser_UnknownAttribute);
        xser.UnknownElement += new System.Xml.Serialization.XmlElementEventHandler(xser_UnknownElement);
        xser.UnknownNode += new System.Xml.Serialization.XmlNodeEventHandler(xser_UnknownNode);
        xser.UnreferencedObject += new System.Xml.Serialization.UnreferencedObjectEventHandler(xser_UnreferencedObject);
        <generated request type here> request = (<generated request type here>)xser.Deserialize(<xml stream here>);

我希望这是有道理的

于 2009-02-20T11:52:06.303 回答
0

你的问题有点混乱。您开始说您将编排发布为 Web 服务,但提出了关于使用它的问题。

如果您谈论的是已发布 的 Web 服务:由 BizTalk Web 服务向导生成的 Web 服务与您在 .NET 中编写的 Web 服务没有什么不同。根据您编排所期望的消息类型以及您在向导中如何构建操作。该向导将使用 WSDL 和模式为您自动生成一个 Web 服务(内部会有一些 BizTalk 特定位,但您无需担心实现)。

您的消费者(独立于平台)应该能够使用该 Web 服务而不会出现任何重大问题。

如果您尝试使用 Orchestration 中的 Web 服务, 请查看本文http://msdn.microsoft.com/en-us/library/ms935219(BTS.10).aspx

于 2010-02-22T13:21:43.090 回答