上篇文章《在MSMQ中使用事务处理消息》 介绍了如何使用c#程序向 MSMQ 写入消息以及从 MSMQ 中读取消息。本文将介绍如何使用 BizTlak 的 MSMQ 接收适配器从 MSMQ 中接收消息,然后使用一个 File 发送适配器将收到的消息转换为一个 XML 文件并发送至一个文件夹中。(向 MSMQ 中发送消息的情况类似,这里不再做介绍。)
1.使用 C# 程序向 MSMQ 中发送消息
使用上篇文章《在MSMQ中使用事务处理消息》中的代码创建一个名为 TestMQ 的私有消息队列并向其中发送三个消息:一个 Person 类型对象,一个 Order 类型对象,以及一个 System.String 类型对象。
需要注意的是,Order 类中直接将其成员变量设为了 public 状态,而 Person 类则通过特性(Property)来访问其成员变量——即通过 get 和 set 来读写变量。由于 BizTalk 智能处理特性,因此下面将会看到由 Order 对象生成的输出 XML 消息中只包含了 XML 框架信息而没有成员信息。
2.创建 MSMQ 接收适配器
在 BizTalk Application 1 中新建一个名为 MSMQReceivePort 的单向接收端口,并为其添加一个名为 MSMQRecevieLocation 的接收位置。MSMQRecevieLocation 的设置如下图所示:
3.创建 File 发送适配器
在 BizTalk Application 1 中新建一个名为 MSMQSendPort 的静态单向发送端口。参数设置如下:
需要注意,接收管道和发送管道都应当选则 PassThru 类型,否则将只有 .Net Framework 内建的 System.String 类型的消息会被处理,而 Person 类型和 Order 类型的消息将会被接收并挂起。
4.检查输出结果
执行第一步中的程序向 TestMQ 中发送三个消息,创建目录 ”C:/Out/”, 然后启动 BizTalk Application 1 。现在打开目录 ”C:/Out/” ,就可以看到三个 Xml 文件,分别对应了输入的三个消息。消息的内容如下:
Person 对象的输出消息:
Order 对象的输出消息:
System.String 对象的输出消息: