在 BizTalk 中,消息的发送是根据 pipeline(管道)中的组件来实现的。如果你想完全“忽略掉”收到的消息,可以在接收到消息后将其删除。以下是 C# 代码示例:
public void DeleteMessage(Microsoft.BizTalk.Message.Interop.IBaseMessage inmsg) { inmsg.Context.Write("RoutingFailureReport.Description", "Message Deleted by Pipeline Component!"); inmsg.BodyPart.Data = new MemoryStream(Encoding.UTF8.GetBytes("")); inmsg.BodyPart.Charset = Encoding.UTF8.WebName; inmsg.Context.Promote("http://schemas.microsoft.com/BizTalk/2003/system-properties#MessageType", "MessageDeleted"); }
在这个示例中,我们在消息上下文中添加了一个自定义属性“RoutingFailureReport.Description”,作为记录消息被删除的描述。我们还设置了消息的 body 部分为空,然后将消息的 ContentType 设置为空。最后,我们在消息上下文中的“MessageType”属性中添加了一个特殊的值“MessageDeleted”,以标识消息已被删除。