コード例 #1
0
        public ServiceBusRuntime(IServiceLocator serviceLocator)
        {
            try
            {
                serviceLocator = Microsoft.Practices.ServiceLocation.ServiceLocator.Current;
            }
            catch (NullReferenceException) // 1.0 throws null ref exception if no provider delegate is set.
            {
            }

            if (serviceLocator == null)
            {
                serviceLocator = SimpleServiceLocator.With(new Delivery.DirectDeliveryCore()); // default to simple service locator with direct message delivery
            }

            _serviceLocator = serviceLocator;

            attachServices();

            _subscriptionEndpoint = new SubscriptionEndpoint(Guid.Empty, "Subscription endpoint", null, null, (Type)null, new SubscriptionDispatcher(() => this.ListSubscriptions(true)), new PredicateMessageFilter(pr => false), true, null);
            _correlatorEndpoint   = new SubscriptionEndpoint(Guid.NewGuid(), "Correlator", null, null, (Type)null, new ActionDispatcher((se, md) =>
            {
                _correlator.Reply((string)md.Context[MessageDelivery.CorrelationId], md);
            }), new PredicateMessageFilter(pr => pr.Context.ContainsKey(MessageDelivery.CorrelationId)), true, null);

            Subscribe(_subscriptionEndpoint);
            Subscribe(_correlatorEndpoint);
        }
コード例 #2
0
 public ServiceBusRuntime(params RuntimeService[] runtimeServices) : this(SimpleServiceLocator.With(runtimeServices))
 {
 }