[rabbitmq-discuss] Messaging and Serialization in RabbitMQ?

Demiss Zike habtdemis at gmail.com
Tue Jul 5 23:14:58 BST 2011


Could, byte[] body = ea.Body; generate it? Because that is the only line the
error seems to relate with. I believe ea is of  BasicDeliverEventArgs type?



On Tue, Jul 5, 2011 at 5:07 PM, Simone Busoli <simone.busoli at gmail.com>wrote:

> Putting back the list (please Reply All).
>
> the code you posted is unlikely generating that exception. It's complaining
> about an invalid cast from BasicDeliverEventArgs to byte[], and you don't
> have such a cast in your code.
>
> On Wed, Jul 6, 2011 at 00:00, Demiss Zike <habtdemis at gmail.com> wrote:
>
>> Sure, I've attached the screen shot of the error.
>>
>>
>> On Tue, Jul 5, 2011 at 4:51 PM, Simone Busoli <simone.busoli at gmail.com>wrote:
>>
>>> Putting back the list.
>>>
>>> Any chance to have a proper stack trace of the exception?
>>>
>>> On Tue, Jul 5, 2011 at 23:46, Demiss Zike <habtdemis at gmail.com> wrote:
>>>
>>>> My bad, please ignore my last response. It compiles well but gives me
>>>> the following run time error:
>>>>
>>>> Unhandled Exception: System.InvalidCastException: Unable to cast object
>>>> of type 'RabbitMQ.Events.BasicDeliverEventArgs' to type 'System[]'.
>>>>
>>>>
>>>>
>>>>
>>>> On Tue, Jul 5, 2011 at 4:35 PM, Demiss Zike <habtdemis at gmail.com>wrote:
>>>>
>>>>> It does and take in a byte[] and initializes a Measurement object.
>>>>>
>>>>>
>>>>> On Tue, Jul 5, 2011 at 4:18 PM, Simone Busoli <simone.busoli at gmail.com
>>>>> > wrote:
>>>>>
>>>>>> Doesn't m2 in your code below contain the deserialized message?
>>>>>>
>>>>>> On Tue, Jul 5, 2011 at 23:15, Demiss Zike <habtdemis at gmail.com>wrote:
>>>>>>
>>>>>>> Hello,
>>>>>>>
>>>>>>> I'm using c#. I have a serializable class called Measurement and want
>>>>>>> to send an object of it. I serialized an object of Measurement and captured
>>>>>>> the serialized object as byte[] and published it. My question is how can I
>>>>>>> capture the published message (so that I can deserialize and use it)?
>>>>>>>
>>>>>>> I've included codes on both ends:
>>>>>>>
>>>>>>> public void publish(byte[] _serializedMsg)
>>>>>>> {
>>>>>>> // publisher code
>>>>>>>      ConnectionFactory factory = new ConnectionFactory();
>>>>>>>             factory.HostName = "localhost";
>>>>>>>              using (IConnection connection =
>>>>>>> factory.CreateConnection())
>>>>>>>             using (IModel channel = connection.CreateModel()) {
>>>>>>>             channel.ExchangeDeclare("logs", "fanout");
>>>>>>>             channel.BasicPublish("logs", queue, null,
>>>>>>> _serializedMsg);
>>>>>>>             Console.WriteLine(" Message sent ");
>>>>>>>         }
>>>>>>> }
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> public void subscribe(string queue)
>>>>>>> {
>>>>>>>  // subscriber code
>>>>>>> ConnectionFactory factory = new ConnectionFactory();
>>>>>>>             factory.HostName = "localhost";
>>>>>>>             using (IConnection connection =
>>>>>>> factory.CreateConnection())
>>>>>>>             using (IModel channel = connection.CreateModel()) {
>>>>>>>             channel.ExchangeDeclare("logs", "fanout");
>>>>>>>
>>>>>>>     string queue1 = channel.QueueDeclare();
>>>>>>>             channel.QueueBind(queue1, "logs", "");
>>>>>>>             QueueingBasicConsumer consumer = new
>>>>>>> QueueingBasicConsumer(channel);
>>>>>>>             channel.BasicConsume(queue1, true, consumer);
>>>>>>>
>>>>>>>             Console.WriteLine(" Waiting for messages. To exit press
>>>>>>> CTRL+C");
>>>>>>>             while(true) {
>>>>>>>                 BasicDeliverEventArgs ea =
>>>>>>>                     (BasicDeliverEventArgs)consumer.Queue.Dequeue();
>>>>>>>                  byte[] body = ea.Body;
>>>>>>>  Measurement m2 = new Measurement(20, 23323, 3.3);
>>>>>>>  m2 = BinarySerialization.BinaryDeSerialize( body );
>>>>>>>
>>>>>>>                 Console.WriteLine(" Message received: ");
>>>>>>>  Console.WriteLine("\nMeasurement ID: {0}", m2.id);
>>>>>>> Console.WriteLine("Measurement Time: {0}", m2.time);
>>>>>>>  Console.WriteLine("Measurement Value: {0}", m2.value);
>>>>>>>             }
>>>>>>>         }
>>>>>>> }
>>>>>>>
>>>>>>>
>>>>>>> Thanks!
>>>>>>> Demi
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> rabbitmq-discuss mailing list
>>>>>>> rabbitmq-discuss at lists.rabbitmq.com
>>>>>>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20110705/17663cde/attachment.htm>


More information about the rabbitmq-discuss mailing list