Example #1
0
        public Endpoint([NotNull] IEndpointAddress address,
                        [NotNull] IMessageSerializer serializer,
                        [NotNull] IDuplexTransport transport,
                        [NotNull] IOutboundTransport errorTransport,
                        [NotNull] IInboundMessageTracker messageTracker)
        {
            if (address == null)
            {
                throw new ArgumentNullException("address");
            }
            if (serializer == null)
            {
                throw new ArgumentNullException("serializer");
            }
            if (transport == null)
            {
                throw new ArgumentNullException("transport");
            }
            if (errorTransport == null)
            {
                throw new ArgumentNullException("errorTransport");
            }
            if (messageTracker == null)
            {
                throw new ArgumentNullException("messageTracker");
            }

            _address        = address;
            _errorTransport = errorTransport;
            _serializer     = serializer;
            _tracker        = messageTracker;
            _transport      = transport;

            _disposedMessage = string.Format("The endpoint has already been disposed: {0}", _address);
        }
Example #2
0
        public IEndpoint CreateEndpoint(ITransportFactory transportFactory)
        {
            try
            {
                IDuplexTransport       transport      = _transportFactory(transportFactory, _settings);
                IOutboundTransport     errorTransport = _errorTransportFactory(transportFactory, _errorSettings);
                IInboundMessageTracker tracker        = _messageTrackerFactory();

                var endpoint = new Endpoint(transport.Address, _settings.Serializer, transport, errorTransport, tracker);

                return(endpoint);
            }
            catch (Exception ex)
            {
                throw new EndpointException(_address.Uri, "Failed to create endpoint", ex);
            }
        }