Пример #1
0
        public IEndpoint CreateEndpoint(Uri requestedUri)
        {
            string scheme = requestedUri.Scheme.ToLowerInvariant();

            if (_transportFactories.Has(scheme))
            {
                ITransportFactory transportFactory = _transportFactories[scheme];
                try
                {
                    IEndpointAddress address = transportFactory.GetAddress(requestedUri);

                    var uriPath = new Uri(address.Uri.GetLeftPart(UriPartial.Path));
                    IEndpointBuilder builder = _endpointBuilders.Get(uriPath, key =>
                    {
                        var configurator = new EndpointConfigurator(address, _defaults);
                        return(configurator.CreateBuilder());
                    });

                    return(builder.CreateEndpoint(transportFactory));
                }
                catch (Exception ex)
                {
                    throw new EndpointException(requestedUri, "Failed to create endpoint", ex);
                }
            }

            throw new ConfigurationException(
                      "The {0} scheme was not handled by any registered transport.".FormatWith(requestedUri.Scheme));
        }
        /// <summary>
        /// Returns a configurator for the specified endpoint URI
        /// </summary>
        /// <param name="configurator"></param>
        /// <param name="uri"></param>
        /// <returns></returns>
        public static IEndpointConfigurator ConfigureEndpoint <T>(this T configurator, Uri uri)
            where T : IEndpointFactoryConfigurator
        {
            var endpointConfigurator = new EndpointConfigurator(new EndpointAddress(uri), configurator.Defaults);

            configurator.AddEndpointFactoryConfigurator(endpointConfigurator);

            return(endpointConfigurator);
        }
Пример #3
0
        public static void Initialize(TestContext context)
        {
            DeleteDbFile();

            var configurator = new EndpointConfigurator();
            var config       = configurator.Configure(new HttpConfiguration());

            Server = new HttpServer(config);
            Client = new HttpClient(Server);
        }
        /// <summary>
        /// Configures the endpoint for the specified URI
        /// </summary>
        /// <param name="configurator"></param>
        /// <param name="uri"></param>
        /// <param name="configureCallback"></param>
        public static T ConfigureEndpoint <T>(this T configurator, Uri uri,
                                              Action <EndpointConfigurator> configureCallback)
            where T : EndpointFactoryConfigurator
        {
            EndpointConfigurator endpointConfigurator = configurator.ConfigureEndpoint(uri);

            configureCallback(endpointConfigurator);

            return(configurator);
        }
        /// <summary>
        /// Configures the endpoint for the specified endpoint URI
        /// </summary>
        /// <param name="configurator"></param>
        /// <param name="uriString"></param>
        /// <param name="configureCallback"></param>
        /// <returns></returns>
        public static T ConfigureEndpoint <T>(this T configurator, string uriString,
                                              Action <EndpointConfigurator> configureCallback)
            where T : EndpointFactoryConfigurator
        {
            EndpointConfigurator endpointConfigurator =
                configurator.ConfigureEndpoint(uriString.ToUri("The configure endpoint URI is invalid"));

            configureCallback(endpointConfigurator);

            return(configurator);
        }
Пример #6
0
        public static void Initialize(TestContext context)
        {
            //Configure the UowFactory to create a new database and seed sample data
            UowFactory.Configure(true, true);
            DeleteDbFile();

            var configurator = new EndpointConfigurator();
            var config       = configurator.Configure(new HttpConfiguration());

            Server = new HttpServer(config);
            Client = new HttpClient(Server);
        }
Пример #7
0
        public void ConfigureEndpoint( Action<EndpointConfigurator> configurate )
        {
            var configurator = new EndpointConfigurator();
            configurate( configurator );
            var endpoint = configurator.RabbitEndpoint;
            AddEndpoint( endpoint );

            if ( !string.IsNullOrEmpty( endpoint.QueueName ) )
            {
                SubscriptionFactory.CreateSubscription( endpoint, configurator.Subscribe );
            }
        }
Пример #8
0
 /// <summary>
 /// Overrides the default error address with a new error address
 /// </summary>
 /// <returns></returns>
 public static EndpointConfigurator SetErrorAddress(this EndpointConfigurator configurator, string uriString)
 {
     return(configurator.SetErrorAddress(uriString.ToUri("Error URI was not valid")));
 }
Пример #9
0
 /// <summary>
 /// Specifies a null transport for error messages
 /// </summary>
 /// <param name="configurator"></param>
 public static EndpointConfigurator DiscardFaultingMessages(this EndpointConfigurator configurator)
 {
     return(configurator.SetErrorTransportFactory((factory, settings) => new NullOutboundTransport(settings.Address)));
 }
Пример #10
0
 /// <summary>
 /// Specify a serializer for this endpoint (overrides the default)
 /// </summary>
 /// <param name="configurator"></param>
 /// <param name="serializerType"></param>
 public static EndpointConfigurator UseSerializer(this EndpointConfigurator configurator, Type serializerType)
 {
     return(configurator.UseSerializer((IMessageSerializer)FastActivator.Create(serializerType)));
 }
Пример #11
0
 /// <summary>
 /// Specify a serializer for this endpoint (overrides the default)
 /// </summary>
 /// <typeparam name="TSerializer"></typeparam>
 public static EndpointConfigurator UseSerializer <TSerializer>(this EndpointConfigurator configurator)
     where TSerializer : IMessageSerializer, new()
 {
     return(configurator.UseSerializer(new TSerializer()));
 }