Рекомендуемый подход - публиковать сообщения после этапа дизассемблирования в окне сообщений BizTalk db и использовать адаптер db для вставки в базу данных. Публикация сообщений в окне сообщений и использование адаптера предоставит вам больше возможностей по дизайну / производительности и отделит вставку вашей БД от логики приема. Также в будущем, если вы захотите повторно использовать то же сообщение для чего-то другого, вы сможете это сделать.
Даже по любой причине, если вам нужно вставить компонент конвейера, сделайте следующее:
Обратите внимание, что метод GetNext () интерфейса IDisassembler не вызывается до тех пор, пока метод Disassemble () не будет завершен. Исходя из этого, вы можете использовать следующий подход, предполагая, что вы инкапсулировали FFDASM в свой собственный компонент:
Вставить все дизассемблированные сообщения в сам метод дизассемблирования и поставить в очередь только последнее сообщение в переменную класса Queue. Затем в сообщении GetNext () верните сообщение Dequeued, когда очередь пуста и верните null. Вы можете оптимизировать вставку в БД, вставляя одновременно несколько строк и сохраняя их в пакетах в зависимости от объема. Обратите внимание, что при таком подходе могут возникнуть проблемы с производительностью в зависимости от размера файла и количества строк, вставляемых в БД.