예제 #1
0
        private int GetOverheadSize()
        {
            long length = (long)0;

            using (MemoryStream memoryStream = new MemoryStream(1024))
            {
                BrokeredMessage   brokeredMessage      = new BrokeredMessage();
                BrokeredMessage   brokeredMessage1     = new BrokeredMessage();
                SendCommand       sendCommand          = new SendCommand();
                BrokeredMessage[] brokeredMessageArray = new BrokeredMessage[] { brokeredMessage, brokeredMessage1 };
                sendCommand.Messages      = new MessageCollection(brokeredMessageArray);
                sendCommand.Timeout       = TimeSpan.MaxValue;
                sendCommand.TransactionId = new string('A', 32);
                SendCommand sendCommand1 = sendCommand;
                RequestInfo requestInfo  = new RequestInfo()
                {
                    ServerTimeout    = new TimeSpan?(sendCommand1.Timeout),
                    OperationTimeout = new TimeSpan?(sendCommand1.Timeout),
                    MessageId        = Guid.NewGuid().ToString(),
                    SessionId        = Guid.NewGuid().ToString(),
                    PartitionKey     = Guid.NewGuid().ToString(),
                    ViaPartitionKey  = Guid.NewGuid().ToString(),
                    TransactionId    = Guid.NewGuid().ToString(),
                    Destination      = Guid.NewGuid().ToString()
                };
                RequestInfo requestInfo1 = requestInfo;
                using (Message message = this.MessageCreator.CreateWcfMessage("http://schemas.microsoft.com/netservices/2011/06/servicebus/SbmpMessageSender/Send", sendCommand1, null, base.RetryPolicy, TrackingContext.GetInstance(Guid.NewGuid(), null), requestInfo1))
                {
                    (new BinaryMessageEncodingBindingElement()).CreateMessageEncoderFactory().Encoder.WriteMessage(message, memoryStream);
                }
                memoryStream.Flush();
                length = memoryStream.Length;
                length = length - (brokeredMessage.Size + brokeredMessage1.Size);
                length = length + (long)512;
                brokeredMessage.Dispose();
                brokeredMessage1.Dispose();
            }
            return((int)length);
        }
예제 #2
0
            protected override Message CreateWcfMessage()
            {
                string      localIdentifier;
                Transaction transaction = base.Transaction;
                SendCommand sendCommand = new SendCommand()
                {
                    Messages = MessageCollection.Wrap(this.messages),
                    Timeout  = base.RemainingTime()
                };
                SendCommand sendCommand1 = sendCommand;

                if (transaction != null)
                {
                    localIdentifier = transaction.TransactionInformation.LocalIdentifier;
                }
                else
                {
                    localIdentifier = null;
                }
                sendCommand1.TransactionId = localIdentifier;
                SendCommand sendCommand2 = sendCommand;
                RequestInfo requestInfo  = new RequestInfo()
                {
                    ServerTimeout = new TimeSpan?(sendCommand2.Timeout),
                    TransactionId = sendCommand2.TransactionId
                };
                RequestInfo requestInfo1 = requestInfo;

                this.messageSender.AddRequestInfoHeader(requestInfo1, this.messages);
                if (this.trackingContext != null)
                {
                    SbmpMessageSender.TraceSend(this.relatedActivity, this.trackingContext, this.messages);
                }
                Message message = base.MessageCreator.CreateWcfMessage("http://schemas.microsoft.com/netservices/2011/06/servicebus/SbmpMessageSender/Send", sendCommand2, null, this.messageSender.RetryPolicy, this.trackingContext, requestInfo1);

                return(message);
            }