Существует несколько вариантов создания нового экземпляра сообщения в оркестровке BizTalk.
Я описал три, которые я обычно использую, а также добавил несколько ссылок внизу ответа.
Как определить, какой метод является наилучшим, действительно зависит - метод XMLDocument в некоторых отношениях является самым аккуратным, за исключением того, что если ваша схема изменится, это может сломаться без вашего ведома. Скотт Колесток описывает некоторые методы снижения этого риска.
Метод сопоставления BizTalk, вероятно, наиболее прост для понимания и не сломается при изменении схемы. Для небольших схем это может быть хорошим выбором.
Для всех этих методов важно помнить, что если вы хотите использовать выделенные поля или повышенные свойства, вы захотите создать пустые элементы для заполнения. Вы попадете в ошибки времени выполнения XLANG
, если попытаетесь присвоить значения отсутствующим элементам (даже если эти элементы могут быть необязательными)
Карта BizTalk
Самый простой вариант - просто использовать карту BizTalk - вам даже не нужно ничего сопоставлять с созданным экземпляром.
Чтобы создать пустые элементы, вы можете просто отобразить в функтоиде конкатенации строк параметр пустой строки.
Назначить одно сообщение другому
Если вы хотите создать новый экземпляр сообщения, вы можете просто скопировать одно сообщение в другое сообщение той же схемы в форме назначения сообщения.
Использовать переменную XMLDocument
Для этого вы создаете переменную оркестровки типа XMLDocument
, а затем в message assignment
используете метод LoadXML
для загрузки фрагмента XML, соответствующего вашей схеме. Затем вы назначаете XMLDocument
желаемому сообщению BizTalk.
varXMLDoc.LoadXml(@"<ns0:SomeXML><AnElementToPopulate></AnElementToPopulate></SomeXML>");
msgYourMessage = varXMLDom;
Включение AnElementToPopulate
позволяет вам использовать продвижение собственности для присвоения ему.
Я редко помню синтаксис, чтобы сделать это на макушке, this - моя запись в блоге для напоминания о синтаксисе.
Другая ссылка здесь подробно описывает некоторые методы.