Last year I wrote an entry about adding arbitrary
binary attachments to a Multi-Part message in BizTalk 2006 using a helper C# component.
That entry has been fairly popular (as far as BizTalk posts go, which is not usually
much!), and I occasionally get questions about it.
The sample uses a bit of clever code to insert arbitrary attachments into an existing
XLANGMessage instance during construction. However, it’s not very clear that this
is actually a supported scenario and so there’s always a chance it might get you into
I recently thought of another way, possibly much better supported to accomplish the
same in BizTalk 2006, though with a little performance hit: Use the Invoke Pipelines
feature in BizTalk 2006 Orchestrations.
Basically, the idea would be to create a custom pipeline component (depending on what
you need it could be a regular encoding/pre-assemble or an assembler component), generate
a new multi-part message in it, and return that to the orchestration.
I haven’t tried it yet, but I think it should work.