我需要通过检查接收端口/位置的名称,或者使用名称填充上下文属性,或者使用我可以定义的一些静态字符串来知道接收到给定消息的接收端口或位置。每个港口/位置
我将在自定义反汇编程序中使用此信息来对消息进行一些处理,但我需要知道消息的哪个端口,以便我知道我需要对消息执行什么样的工作。我非常有信心我知道如何在这样的自定义组件中读取上下文属性,但我无法弄清楚如何在之前填充它。我无法弄清楚消息本身的任何地方是否记录了消息所在的端口。
答案 0 :(得分:5)
Abhilash's blog上有一个很好的可用上下文属性列表。
你想要的是ReceivePortName,所以在你的管道中你会想要像:
public IBaseMessage Execute(IPipelineContext pContext, IBaseMessage pInMsg)
{
IBaseMessageContext context = pInMsg.Context;
string portName = context.Read("ReceivePortName", "http://schemas.microsoft.com/BizTalk/2003/system-properties").ToString();
}