Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El fragmento de código siguiente del agente de transformación dinámica muestra la funcionalidad de resolución Just-In-Time (JIT) predeterminada. Puede implementar fácilmente la resolución en su propia aplicación mediante código similar.
//XLANGs
itinerary = new Microsoft.Practices.ESB.Itinerary.SerializableItineraryWrapper();
step = new Microsoft.Practices.ESB.Itinerary.SerializableItineraryStepWrapper();
itinerary.Itinerary = Microsoft.Practices.ESB.Itinerary.ItineraryOMFactory.Create(InboundMessage);
step.ItineraryStep = itinerary.Itinerary.GetItineraryStep(InboundMessage);
resolvers = step.ItineraryStep.ResolverCollection;
resolvers.MoveNext();
resolver = resolvers.Current;
// Pass the resolver configuration to the Resolver mgr for resolution.
resolverDictionary = Microsoft.Practices.ESB.Resolver.ResolverMgr.Resolve(InboundMessage, resolver);
// Set the transform type.
transformType = resolverDictionary.Item("Resolver.TransformType");
En la lista anterior, el método Resolve de la clase ResolverMgr devuelve un objeto Dictionary que contiene todas las propiedades de resolución predeterminadas y sus valores resueltos. Cualquier solucionador personalizado puede agregar propiedades personalizadas al objeto Dictionary ; esto hace que esas propiedades estén disponibles para cualquier servicio de itinerario personalizado.
En la tabla siguiente se muestran las propiedades que pueden rellenar opcionalmente los solucionadores incluidos en microsoft BizTalk ESB Toolkit. Cualquier servicio de itinerarios puede recuperar estos valores de propiedad extrayendolos del objeto Dictionary devuelto.
Propiedades:
| Resolver.Action | Resolver.ActionField | Resolver.DocumentSpecName |
| Resolver.Éxito | Resolver.EndpointConfig | Resolver.DocumentSpecStrongName |
| Resolver.FixJaxRpc | Resolver.InboundTransportType | Resolver.EpmRRCorrelationToken |
| Resolver.InterchangeId | Resolver.IsRequestResponse | Resolver.InboundTransportLocation |
| Resolver.MessageType | Resolver.MethodName | Patrón de Intercambio de Mensajes del Resolver |
| Resolver.NombreDelPuertoDeRecepción | Resolver.TransportLocation | Resolver.OutboundTransportCLSID |
| Resolver.TransformType | Resolver.TargetNamespace | Resolver.ReceiveLocationName |
| Resolver.TransportType | Resolver.TransportNamespace | Resolver.WindowUserField |
| Resolver.CacheTimeout |
Después de que el administrador del solucionador devuelva la instancia del objeto Dictionary , el administrador del adaptador establece las propiedades específicas del contexto del adaptador de BizTalk del mensaje. El siguiente fragmento de código del agente de enrutamiento muestra cómo puede usar el administrador de adaptadores para establecer las propiedades del punto de conexión del mensaje saliente.
//XLANGs
// Set the transport properties.
transportLocation = resolverDictionary.Item("Resolver.TransportLocation");
transportType = resolverDictionary.Item("Resolver.TransportType");
// Create the delivery message.
DeliveryMessage = InboundMessage;
// Call the adapter manager to set all necessary properties on the message.
Microsoft.Practices.ESB.Adapter.AdapterMgr.SetEndpoint(
resolverDictionary,DeliveryMessage);
// Set the delivery port address.
DeliveryPort(Microsoft.XLANGs.BaseTypes.Address) = transportLocation;
DeliveryPort(Microsoft.XLANGs.BaseTypes.TransportType) = transportType;
El fragmento de código siguiente del agente de enrutamiento muestra cómo usar el administrador de adaptadores desde dentro de un componente de canalización personalizado para establecer las propiedades del punto de conexión de un mensaje saliente.
// Resolve the configuration for routing.
ResolverDictionary = ResolverMgr.Resolve(info, pInMsg, pContext);
// Call the adapter manager to set all required message properties.
AdapterMgr.SetEndpoint(ResolverDictionary, pInMsg.Context);