Question

J'ai trouvé des fils cassés à travers le Web où les gens prétendent être en mesure d'utiliser des formes recevoir dans une orchestration avec les types XLANGMessage pour recevoir des fichiers de schéma de fichiers plats qui ne pouvaient être regroupées en une xsd spécifique.

J'ai essayé de définir la messagetype dans la forme que reçoivent Microsoft.XLANGS.BaseTypes.XLANGMessage, mais ce n'est pas basetype sérialisable. Cela provoque alors une erreur de construction.

Y at-il un type d'objet qui peut capturer à la fois xmldocuments des messages XML bien formés ainsi que XML malformé et fichiers plats non-assemblés?

Était-ce utile?

La solution

En réponse à votre question directement en gras -. Oui, le type que vous êtes après est System.Xml.XmlDocument

Ce que vous devez faire est de créer un nouveau message et lors de la sélection de son type, sélectionnez le type ci-dessus de la section des classes .NET.

Ce message lorsque affecté à une forme de réception peut alors recevoir une charge utile, par exemple, je l'ai souvent utilisé cela pour passer des formats tels que les fichiers .pdf par BizTalk où j'avais pas besoin de les analyser. Il faut savoir, cependant, que malgré le nom, ce que vous avez ici est pas Xml et vous causer toutes sortes de problèmes si vous essayez de traiter est en tant que telle.


Pour creuser un peu plus loin dans votre question - que vous essayez de faire une sorte d'orchestration de gestion des erreurs

Si vous êtes alors dans votre code de gestion des erreurs, vous pouvez tout simplement avoir une forme de recieve qui reçoit un message de type XmlDocument avec son ensemble d'expression de filtre pour ErrorReport.ErrorType == « FailedMessage » qui est lié à un port lié directement attaché à la boîte de message.

Je l'ai souvent trouvé pratique d'avoir deux formes de réception, un pour attraper les échecs de routage, lorsque nous avons une charge utile, et une autre de souscrire à une enveloppe fortement faute types wrapper que vous définissez et passer de vos autres orchestrations de leurs formes CatchException.

Cela signifie que vous pouvez construire un endroit centralisé pour gérer toutes les exceptions.


Si vous ne l'avez pas vu, il y a une belle message par Charles Young qui peut décrire quelque chose de semblable à ce que vous essayez de faire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top