Ejemplo n.º 1
0
        public void cloning_an_envelope()
        {
            var envelope = new Envelope();
            envelope.Message = new Message1();
            envelope.Headers["a"] = "1";
            envelope.Headers["b"] = "2";

            var clone = envelope.Clone();

            clone.ShouldNotBeTheSameAs(envelope);
            clone.Message.ShouldBeTheSameAs(envelope.Message);
            clone.Headers.ShouldNotBeTheSameAs(envelope.Headers);

            clone.Headers["a"].ShouldEqual("1");
            clone.Headers["b"].ShouldEqual("2");
        }
Ejemplo n.º 2
0
        // virtual for testing of course
        public virtual IHeaders Send(Envelope envelope, IEnvelopeSerializer serializer, Uri replyUri = null)
        {
            var clone = envelope.Clone();

            // Must be done in this order!
            Modifiers.Each(x => x.Modify(clone));
            serializer.Serialize(clone, this);

            clone.Headers[Envelope.DestinationKey] = Uri.ToString();
            clone.Headers[Envelope.ChannelKey] = Key;

            if (replyUri != null)
            {
                clone.Headers[Envelope.ReplyUriKey] = replyUri.ToString();
            }

            Channel.Send(clone.Data, clone.Headers);

            return clone.Headers;
        }